kubernetes - 从 Helm stable/cert-manager 升级到 jetstack/cert-manager

标签 kubernetes kubernetes-helm lets-encrypt azure-aks cert-manager

我们有一个生产 AKS 集群,它具有 stable/cert-manager安装了 helm chart 以允许使用 Let's Encrypt 证书。当前安装的版本是 cert-manager-v0.6.0kube-system命名空间。

Let's Encrypt 将从 2019 年 11 月 1 日起停止支持来自 cert-manager pre 8.0 版本的流量。

我想升级但最新的可用 stable图表版本是 v0.6.7 .似乎要走的路是切换到jetstack/cert-manager .

我该如何最好地解决这个问题?我要不要卸载当前的stable/cert-manager使用 jetstack/cert-manager 绘制图表并从头开始安装?任何有关如何在不停机的情况下解决此问题的资源都将不胜感激。如果我能提供更多细节,请告诉我。

最佳答案

对于任何提出相同问题的人,我已尝试在我的测试集群上执行全新安装,这似乎工作得相当顺利。我通过运行 helm list 找到了我的掌 Helm 版本的名称。

然后我执行了以下步骤:

1.备份 :

kubectl get -o yaml \
   --all-namespaces \
   issuer,clusterissuer,certificates,orders,challenges > cert-manager-backup.yaml

Source

2.删除 :
# Uninstall the Helm chart
helm delete --purge <your release name here>

# Ensure the cert-manager CustomResourceDefinition resources do not exist:
kubectl delete crd \
    certificates.certmanager.k8s.io \
    issuers.certmanager.k8s.io \
    clusterissuers.certmanager.k8s.io

步骤 2 中描述的 here

3.安装新的jetstack版本 :
# Install the CustomResourceDefinition resources separately
kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.9/deploy/manifests/00-crds.yaml

# Create the namespace for cert-manager
kubectl create namespace cert-manager

# Label the cert-manager namespace to disable resource validation
kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true

# Add the Jetstack Helm repository
helm repo add jetstack https://charts.jetstack.io

# Update your local Helm chart repository cache
helm repo update

# Install the cert-manager Helm chart
helm install --name <your release name here> --namespace cert-manager --version v0.9.1 jetstack/cert-manager

描述 here

4.恢复 :

我试过运行
kubectl apply -f cert-manager-backup.yaml

如所述 here但这一步实际上对我来说并不完全有效。发行人已创建(自签名和 CA),但我无法重新创建 CertificatesClusterIssuer .这些是我收到的错误:
Error from server (InternalError): Internal error occurred: failed calling webhook "clusterissuers.admission.certmanager.k8s.io": the server is currently unable to handle the request
Error from server (InternalError): Internal error occurred: failed calling webhook "certificates.admission.certmanager.k8s.io": the server is currently unable to handle the request

我有我的原版 yaml文件并能够创建 ClusterIssuerCertificate通过应用它们

关于kubernetes - 从 Helm stable/cert-manager 升级到 jetstack/cert-manager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57506474/

相关文章:

azure - 如何在 terraform kubernetes 部署上为虚拟机规模集启用托管标识

docker - ZMQ在aiohttp Web服务中使 “randomly”崩溃

javascript - 使用 Node-Forge 进行 SHA256 摘要签名

apache - 使用 Let's encrypt with Apache 和 Apache Tomcat

ssl - 让我们在 GKE 上加密、Kubernetes 和 Traefik

node.js - 从AWS lambdas访问kubernetes集群中的Mongo副本

sorting - Kubernetes:按年龄升序显示 Pod

kubernetes - 如何使用 helm 模板创建 toml 数组?

kubernetes - Jenkins X - 如何安装应用程序

kubernetes-helm - Helm : howto use ".Files.Get" to import a json into a config map