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
ksd
2
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 个赞