【发布时间】:2021-10-31 20:57:08
【问题描述】:
我一直在尝试在 Digital Ocean 中部署 Kubernetes 集群。除非我尝试应用 tls 证书,否则一切似乎都有效。我一直在遵循这些步骤,但使用Nginx Ingress Controller v1.0.0 和cert-manager v1.5.0。
我有两个网址,比如说api.example.com 和www.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 挑战,我可以看到哈希,但我被卡住了,我不确定它失败的原因或解决此问题的步骤。
【问题讨论】:
-
你用的是哪个版本的 Kubernetes?
-
@MikołajGłodziak 感谢 cmets,我正在使用版本
Kubernetes 1.21.2-do.2 -
你看到this topic和this one了吗?
-
@MikołajGłodziak 感谢您的评论。是的,一开始我认为第 5 点是可选的,但后来我意识到它应该更新负载均衡器。我认为我在注释、入口或更新负载均衡器的服务中出错,我将在新集群中重试并更新问题。
-
@MikołajGłodziak 我能够完成这项工作,首先我需要让负载均衡器 id 执行`k describe svc ingress-nginx-controller --namespace=ingress-nginx`,然后粘贴到注释
kubernetes.digitalocean.com/load-balancer-id: “xxxx-xxxx-xxxx-xxxx-xxxxx”感谢您的 cmets,它帮助我解决了问题。
标签: kubernetes digital-ocean lets-encrypt nginx-ingress cert-manager