Kubernetes v1.24.3 升级破坏了 ingress-nginx

Kubernetes v1.24.3 升级破坏了 ingress-nginx

将 AKS kubernetes 集群从 v1.23.8 升级到 v1.24.3 后,我们的 ingress 停止正常工作。事件中没有记录任何错误,并且 ingress-nginx pod 不会在控制台上报告任何错误。一切看起来都很好之内但是公网IP的所有端口对外都是关闭的。

甚至从集群内部 curl 集群中运行的 Web 应用程序也能正常工作。似乎只是外部端口的打开出现了问题。Ingress-nginx 是通过 helm release (HR v4.2.5) 部署的。

我感觉一定是入口或控制器的一些配置需要改变。

更新:我们全新安装了普通的 AKS 集群,并安装了helm install quickstart ingress-nginx/ingress-nginx1.23.8(可以运行)、1.24.0(不可以运行)和 1.24.3(也不可以运行)。

有什么想法或指点吗?

答案1

我们发现了这个问题。

对于 v1.24.0 及更高版本的集群,负载均衡器的健康探测设置为 HTTP 和 HTTPS,而不是 TCP。当我们将健康探测更改为使用 TCP 时,一切又恢复正常。

针对此问题为 AKS 创建了一个问题: https://github.com/Azure/AKS/issues/3210

正确的解决方法是向 nginx 服务添加以下注释(请参阅上面 AKS 问题的链接):

values:
controller:
  service: 
    annotations:
      service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path: /healthz

相关内容