Digital Ocean Kubernetes Let's Encrypt Waiting for HTTP-01 challenge propagation:执行自检失败

Digital Ocean Kubernetes Let's Encrypt Waiting for HTTP-01 challenge propagation: failed to perform self check

我一直在尝试在 Digital Ocean 中部署 Kubernetes 集群。除了我尝试应用 tls 证书时,一切似乎都有效。我一直在按照这些步骤操作,但是 Nginx Ingress Controller v1.0.0 和 cert-manager v1.5.0.

我有两个网址,比方说 api.example.comwww.example.com

查看我看到的挑战Waiting for HTTP-01 challenge propagation: failed to perform self check GET request...

我尝试将以下注释添加到入口:

kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
cert-manager.io/cluster-issuer: "letsencrypt-prod"

或使用此服务作为解决方法:

kind: Service
apiVersion: v1
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  annotations:
    service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"
    service.beta.kubernetes.io/do-loadbalancer-hostname: "www.example.com"
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  #CHANGE/ADD THIS
  externalTrafficPolicy: Cluster
  type: LoadBalancer
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  ports:
    - name: http
      port: 80
      targetPort: http
    - name: https
      port: 443
      targetPort: https

如果我参加 URL 挑战,我可以看到哈希,但我卡住了,我不确定失败的原因或解决此问题的步骤。

正如agusgambina在评论中提到的,问题已解决:

I was able to make this work, first I need to get the load balancer id executing k describe svc ingress-nginx-controller --namespace=ingress-nginx and then pasting in the annotation kubernetes.digitalocean.com/load-balancer-id: “xxxx-xxxx-xxxx-xxxx-xxxxx” thanks for your comments, it helped me to solve the issue.

这个问题也有描述here并且还有教程
How to Set Up an Nginx Ingress with Cert-Manager on DigitalOcean Kubernetes.