Kubernetes 网络文档中的唯一要求是在 pod 之间打开防火墙。pod 到服务的连接如何工作,因为服务集群 ip range 和 pod cidrs 不同?
1 回答
1
服务分配了一个虚拟 IP 。当 Pod 与 Service 通信时,本地节点上的 Kubeproxy 将虚拟 IP 替换为代表该服务的 Pod 之一的 IP。
一个例子: 例如,Node-A 上的 Pod-A 想要向 Service-B 发送请求。例如,Service-B 由带有标签 app-b 的 Pod 实现,在此示例中,Node-C 和 Node-E 上的 Pod-D 和 Pod-E。当 Pod-A 发送请求时,目标 IP 从虚拟 IP 更改为由 kubeproxy 用于 Pod-D 或 Pod-E 的 IP,并且请求被路由到代表 Service-B 的 Pod 之一。
Layout:
Service-B with selector: app=b
Pod-D with label: app=b
Pod-E with label: app=b
Pod-A 应该寻址 Service 虚拟 IP,因为在部署新版本时Pod来来去去。但是虚拟 IP 被翻译成一个带有 Service 实现的 pod。
于 2019-10-22T20:17:33.627 回答