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

sev*_*nam 13 azure kubernetes helm nginx-ingress

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

即使从集群内部卷曲在集群中运行的 Web 应用程序也可以正常工作。看来只是对外开放的端口坏了。Ingress-nginx 通过 helm release (HR v4.2.5) 进行部署。

我有一种感觉,一定是入口或控制器的某些配置需要更改。

更新:我们重新安装了一个普通的 AKS 集群,并helm install quickstart ingress-nginx/ingress-nginx在 1.23.8(有效)、1.24.0(无效)和 1.24.3(也无效)中进行了安装。

有什么想法或指示吗?

sev*_*nam 19

我们发现了问题。

对于集群 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
Run Code Online (Sandbox Code Playgroud)