我无法使用证书管理器创建证书。
我遵循本指南https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html
这项工作:
antonswanevelder$ kubectl get pods --namespace cert-manager
NAME READY STATUS RESTARTS AGE
cert-manager-69b4f77ffc-4296b 1/1 Running 0 9m5s
cert-manager-cainjector-576978ffc8-2mxz6 1/1 Running 0 2d13h
cert-manager-webhook-c67fbc858-sdjff 1/1 Running 1 2d13h
但是运行测试
kubectl describe certificate -n cert-manager-test
什么也不会产生。
有什么想法可以解决这个问题吗?
重新创建K8s集群,并按照上面证书管理器页面中的步骤进行操作。我犯的一个主要错误是在Ingress中引用了错误的命名空间。
请注意使用cert-manager.io/cluster-requestor
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
# add an annotation indicating the issuer to use.
cert-manager.io/cluster-issuer: letsencrypt-prod
还请注意,在使用cert-manager的v11时,apiVersion和solver略有变化。
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
# You must replace this email address with your own.
# Let's Encrypt will use this to contact you about expiring
# certificates, and issues related to your account.
email: youremail@domain.com
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
# Secret resource used to store the account's private key.
name: letsencrypt-prod
# Add a single challenge solver, HTTP01 using nginx
solvers:
- http01:
ingress:
class: nginx
最后,值得注意的是,Lets-encrypt需要指向一个有效的页面才能提供证书。请确保您的域指向正确,并且页面位于该域的根目录下。戳上有一个速率限制器,所以最好与临时颁发者合作,直到证书送达。如果您运行以下代码,它应该显示CertificateCreated。
kubectl describe ingress