Kubernetes 证书不是为证书管理器创建的
Kubernetes Certificate not creating for cert-manager
我无法使用 cert-manager 创建证书。
我正在按照本指南进行操作
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 集群并按照上面 cert-manager 页面中的步骤进行操作。我犯的一个主要错误是在我的 Ingress 中引用了错误的命名空间。
请注意使用cert-manager。io/cluster-issuer
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
# add an annotation indicating the issuer to use.
cert-manager.io/cluster-issuer: letsencrypt-prod
另请注意,使用 v11 的 cert-manager 时,apiVersion 和求解器会略有不同。
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 需要指向一个有效页面才能提供证书。确保您的域指向正确并且页面在该域的根目录下提供。 prod 上有一个速率限制器,因此最好与暂存颁发者合作,直到提供证书为止。如果你 运行 下面的代码应该显示 CertificateCreated.
kubectl describe ingress
我无法使用 cert-manager 创建证书。
我正在按照本指南进行操作 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 集群并按照上面 cert-manager 页面中的步骤进行操作。我犯的一个主要错误是在我的 Ingress 中引用了错误的命名空间。
请注意使用cert-manager。io/cluster-issuer
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
# add an annotation indicating the issuer to use.
cert-manager.io/cluster-issuer: letsencrypt-prod
另请注意,使用 v11 的 cert-manager 时,apiVersion 和求解器会略有不同。
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 需要指向一个有效页面才能提供证书。确保您的域指向正确并且页面在该域的根目录下提供。 prod 上有一个速率限制器,因此最好与暂存颁发者合作,直到提供证书为止。如果你 运行 下面的代码应该显示 CertificateCreated.
kubectl describe ingress