Helm安装的rancher,ssl证书没有自动续签,怎么办?

helm repo add rancher-latest https://releases.rancher.com/server-charts/latest

kubectl create namespace cattle-system

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.20.0/cert-manager.crds.yaml

helm repo add jetstack https://charts.jetstack.io

helm repo update

helm install cert-manager jetstack/cert-manager
–namespace cert-manager
–create-namespace

helm install rancher rancher-latest/rancher
–namespace cattle-system
–set hostname=10.10.10.231.sslip.io
–set replicas=1
–set bootstrapPassword=admin
–set rancherImage=registry.cn-hangzhou.aliyuncs.com/rancher/rancher
–set systemDefaultRegistry=registry.cn-hangzhou.aliyuncs.com

cert-manager 负责签发证书和更新,你可以查看下 cert-manager 的日志,看看原因,然后排查

已解决。
第一步验证:

确认 ClusterRoleBinding 存在且绑定正确

kubectl get clusterrolebinding | grep cert-manager

确认 ServiceAccount 有对应权限

kubectl auth can-i list secrets --as=system:serviceaccount:cert-manager:cert-manager

期望输出: yes

kubectl auth can-i list certificaterequests.cert-manager.io --as=system:serviceaccount:cert-manager:cert-manager

期望输出: yes

我这里发现都是no,clusterrolebinding都不对。

使用命令:
helm upgrade cert-manager jetstack/cert-manager
–namespace cert-manager
–version v1.20.0
–set installCRDs=false
–wait

最后再来验证:

确认 ClusterRoleBinding 存在且绑定正确

kubectl get clusterrolebinding | grep cert-manager

确认 ServiceAccount 有对应权限

kubectl auth can-i list secrets --as=system:serviceaccount:cert-manager:cert-manager

期望输出: yes

kubectl auth can-i list certificaterequests.cert-manager.io --as=system:serviceaccount:cert-manager:cert-manager

期望输出: yes

如果没有自动触发(我这里自动触发了,刷新过浏览器),则:
kubectl delete secret tls-rancher-ingress -n cattle-system
kubectl delete certificaterequests.cert-manager.io --all -n cattle-system

等待证书 Ready

kubectl wait --for=condition=Ready certificate/rancher -n cattle-system --timeout=120s

验证新证书

kubectl get secret tls-rancher-ingress -n cattle-system -o jsonpath=‘{.data.tls.crt}’ |
base64 -d | openssl x509 -noout -dates

1 个赞