为什么Kubernetes网络模型不要求在防火墙上打开服务群集ip范围?

时间:2019-10-22 19:34:49

标签: kubernetes project-calico

Kubernetes网络文档中的唯一要求是在Pod之间打开防火墙。由于服务群集的IP范围和Pod Cidrs不同,Pod到服务的连通性如何工作?

1 个答案:

答案 0 :(得分:1)

服务分配了虚拟IP 。当Pod与服务进行通信时,本地节点上的Kubeproxy将虚拟IP替换为代表该服务的其中一个Pod的IP。

示例: 例如。节点A上的Pod-A要向服务B发送请求。 Service-B例如由带有标签app-b的Pod实施,在此示例中,由Node-C和Node-E上的Pod-D和Pod-E实施。当Pod-A发送请求时,kubeproxy将目标IP从虚拟IP更改为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应该处理服务虚拟IP,因为在部署新版本时,pod 会出现并消失。但是,随着服务的实施,虚拟IP会转换为Pod。