具有 ClusterIP 的 Pod 与入口的静态 IP 具有不同的 IP

Pod with ClusterIP had a different IP than static IP of ingress

我正在使用 Postgres 在 Azure 上管理一个小型 Kubernetes 集群。可以通过具有静态 IP 的 Nginx 控制器访问此集群。

ClusterIP 的入口路由到使用 Postgres 实例的 pod。这个 Postgres 实例的所有 IP 都被阻止了,除了我自己的 IP 和入口的静态 IP 之外。 在我今天早上推送更新之前,这一直运行良好,令我惊讶的是,我在日志中看到一个错误,即 pods IP 地址与静态入口 IP 不同,并且因此存在权限错误。

我的问题:我的带有 ClusterIP 的 pod 的外部 IP 地址怎么可能与我分配给它的入口静态 IP 不同? 请注意,通过 Ingress 可以轻松到达 pod。

IngressesServices 仅处理传入的 pod 流量。 Pod 传出流量 IP 取决于您使用的 Kubernetes 网络实现。默认情况下,来自 pods 的所有传出连接都在节点级别进行源 NAT 转换,这意味着 pod 将具有其运行所在的节点的 IP。因此,您可能希望在 Postgres 中允许工作节点 IP 地址。