为什么我可以从任何 worker 和 master public IP 访问 kubernetes pod?

Why can I access kubernetes pod from any worker and master public IP?

我可以通过任何工作节点 IP 访问 pod,也可以通过主节点 IP 访问 Pod 是否正常?

kubectl get pods -o wide 显示 pod 在一个特定的工作节点上,但我可以从任何主节点或工作节点 public IP 访问它。我有 1 个那个 pod 的副本。

谁能帮忙解释一下为什么?

这只有在您使用 NodePort 类型服务时才有可能。这是因为根据设计,NodePort 在集群中的所有节点(包括主节点)上打开。

来自docs

NodePort:在静态端口(NodePort)的每个节点的 IP 上公开服务。自动创建 NodePort 服务路由到的 ClusterIP 服务。您将能够通过请求 <NodeIP>:<NodePort>

从集群外部联系 NodePort 服务

如果您正在寻找避免这种情况的方法,请使用 ingressClusterIP 类型的服务。