Kubernetes CluterIssuer 挑战超时

Kubernetes CluterIssuer 挑战超时

设置:DigitalOcean K8S 集群,带有 2 个节点和 1 个 Ingress-NGINX LoadBalancer(无特殊配置)

我想知道为什么证书请求会失败,并在挑战的日志中发现,自检 GET 请求超时了:

 Waiting for http-01 challenge propagation: failed to perform self check GET request 'http...'
 ... dial tcp PUBLIC_LOADBALANCE_IP:80 connect: connection timed out

仔细观察后发现,当我尝试发出 curl 请求时,问题似乎从正在运行的 Pod 内部到我的 LoadBalancer 公共 IP,仅限 LoadBalancer 当前所在节点上运行的 Pod不指向可以成功发出请求。来自其他节点上运行的 pod 的所有其他请求都会超时。

有什么建议吗?

编辑:

进一步挖掘后,我发现在 ingress-nginx 服务中设置“externalTrafficPolicy”

externalTrafficPolicy: Local

externalTrafficPolicy: Cluster

似乎解决了这个问题。现在来自所有 pod 的请求(无论它们在哪个节点上运行)都可以成功发出请求。这引出了我的另一个问题:

我在设置时是否遗漏了某些内容?我想是的,否则我不明白为什么文档或任何教程都没有提示这个潜在问题。

答案1

您在设置过程中没有遗漏任何内容。

有一个问题报告此行为,它看起来与您描述的非常相似。不幸的是,这个问题仍然悬而未决,因此目前还没有解决方案。

唯一的可能性是使用你的解决方法externalTrafficPolicy将从更改LocalCluster

相关内容