当 pod ip 更改时,ingress-nginx-controller 没有更新流 ip

问题描述 投票:0回答:1

到目前为止,更新 Pod 的镜像并没有破坏任何东西。然而,最后一次,pod 本身在集群中获得了一个新的 IP,并且我的服务变得无法访问(502 Bad Gateway)。我调试了请求的每一步以找到问题,从浏览器到容器。在 ingress-nginx-controller pod 的日志中,我发现了这一行可疑的行:

2024/05/15 15:36:27 [error] 7032#7032: *230837456 connect() failed (113: Host is unreachable) while connecting to upstream, client: <client-ip>, server: mysubdomain.mydomain.com, request: "GET / HTTP/2.0", upstream: "http://10.244.0.24:<port>/", host: "mysubdomain.mydomain.com"

上游IP(10.244.0.24)对应于我更新之前的旧Pod IP。更新后,pod IP 变为 10.244.0.61。

我的集群第一次出现这种情况。通常情况下,pod IP 可能不会随着更新而改变,或者当上游 ip 发生变化时,ingress-nginx-controller 可能会更新。或者也许是别的东西,我不知道它是如何工作的,但我看到它是这样的。到现在为止。

重启节点没有解决。 ingress-nginx-controller pod 不会启动。一直重启。

预先感谢您分享您的知识。深表赞赏。

kubernetes nginx
1个回答
0
投票

Pod 的 IP 地址更有可能从其生命周期开始改变基址,尽管我们无法判断它何时会发生。在“Pod 生命周期”下共享的链接中提到“Pod 本身不会自我修复”。这就是为什么如果 pod 发生问题,它将被删除或销毁并替换为新的 pod,此时 IP 地址将发生变化。

也与您分享这个链接,其中解决方案是更改IP地址,因为nginx缓存的IP地址不再存在。

此外,如果您考虑的话,您还可以将 nginx 入口控制器连接到与您的 Pod 关联的服务集群 IP 地址。分配给服务的集群 IP 地址在服务持续时间内通常是静态的。一旦分配,只要服务处于活动状态,它就保持不变

© www.soinside.com 2019 - 2024. All rights reserved.