Kubernetes Kube代理机制

use*_*431 6 kubernetes kube-proxy

假设在Kubernetes中,我们有三个Pod,它们物理上托管在Node X,Y和Z上。当我使用'kubectl暴露'将它们作为服务公开时,集群中的所有节点都是(除了X,Y和Z )配置方式相同?具体来说,集群中每个节点中的kube-proxy会监视apiserver,构建一堆iptables规则并引用门户IP(由apiserver选择),然后将这些规则插入其所驻留的节点?

我认为必须在所有节点上完成的原因是集群不知道客户端来自哪个节点来打入口IP?

Jan*_*art 4

你是对的。门户网络(又名服务网络、集群网络)没有网络接口,而是由 kube-proxy 管理的 iptables 规则的集合。每个节点都需要有这些规则,因为其中任何一个节点上的 pod 都可以连接任何门户 IP(又名服务 IP、集群 IP)。

在这里阅读更多信息: https: //kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies