存储新私钥后证书请求似乎卡住了

Certificate request seems stuck after storing new private key

我一直在尝试使用带有 CertManager 的 LetsEncrypt 来在 Kubernetes 上部署我们的环境来提供证书。

但是,似乎无法提供证书,无论出于何种原因。 我一直在经历这些步骤 https://cert-manager.io/docs/faq/troubleshooting/ 但我卡在了 'Stored new private key in temporary Secret Resource "xxx"',我找不到任何故障排除步骤来解决这个问题。

The events list from my past few attempts to reset the certificate

我的 ingress.yaml 看起来如下:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: myname-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-prod
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:
  - hosts:
    - app.mydomain.io
    secretName: tls-secret
  rules:
  - host: app.mydomain.io
    http:
      paths:
      - backend:
          serviceName: mydomain-identity-v1
          servicePort: 80
        path: /login(/|$)(.*)
      - backend:
          serviceName: mydomain-account-v1
          servicePort: 80
        path: /account(/|$)(.*)

具有以下集群发行者:

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: ***
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - http01:
        ingress:
          class: nginx

我已按照以下指南安装所有内容: https://docs.microsoft.com/en-us/azure/aks/ingress-static-ip#create-a-ca-cluster-issuer

它在我们的开发环境中工作得很好,但是对于这个新环境,它似乎不想发出实际的 CertificateRequest。 ClusterIssuer 资源显示为就绪

有没有人遇到过这种情况,或者知道该怎么办?到目前为止,我的搜索一无所获。

我已经在Azure AKS集群中成功实现了这个,你可以按照这个方式进行-

  1. here
  2. 安装证书管理器
  3. 然后从此
  4. 开始执行以下步骤

创建一个 clusterIssuer 或者你也可以创建单独的 issuer,一旦你将主机名修补为 ingress,那么在 acme-challenge 验证之后 Jetstack 将自动生成该命名空间中的 tls 证书

请确保将负载均衡器 nginx/traefik 等的 IP 映射到 DNS/hostname

我在此环境中使用的 cert-manager 版本比我在另一个环境中使用的版本更新。我的 kubernetes 版本和导致问题的 cert-manager 版本之间肯定存在一些不匹配。通过恢复到相同的证书管理器版本,问题已自行解决。