Kubernetes需要分配真实的IP地址吗



我正在努力了解Kubernetes以及它是如何在后台工作的。据我所知,每个pod都有自己的IP地址。我不确定的是那是什么样的IP地址。

这是我公司的网络管理员需要解决的问题吗?或者是在整个网络上无法寻址的内部IP地址?

我读过关于网络覆盖的文章(比如Calico项目(,我认为它们在其中发挥了作用,但我似乎找不到解释这种联系的页面。(我认为我的问题对于互联网来说太过补救了。(

Pod的IP地址是我网络上的完整IP地址吗(就像虚拟机一样(

Kubernetes集群

Pod的IP地址是我网络上的完整IP地址吗(就像虚拟机一样(?

Kubernetes的问题是,它不是像虚拟机那样的服务,而是一个拥有自己的网络功能和管理的集群,包括IP地址分配网络路由

您的节点可能是虚拟机或物理机,但它们在NodeController中注册,例如用于健康检查,最常见的是用于IP地址管理。

节点控制器是一个Kubernetes主组件,用于管理节点的各个方面。

节点控制器在节点的生命周期中具有多个角色。第一种是在节点注册时将CIDR块分配给节点(如果CIDR分配打开(。

集群体系结构-节点

IP地址管理

Kubernetes Networking依赖于集群正在使用的容器网络接口(CNI(插件。

CNI插件负责。。。然后,它应该将IP分配给接口,并通过调用适当的IPAM插件来设置与IP地址管理部分一致的路由。

通常为每个节点分配一个CIDR范围的IP地址,然后节点将这些地址分配给在节点上调度的pod。

GKE网络概述很好地描述了它如何在GKE上工作。

每个节点都有一个从集群的虚拟专用云(VPC(网络分配的IP地址。

每个节点都有一个IP地址池,GKE为在该节点上运行的Pod分配IP地址池(默认情况下为/24 CIDR块(。

每个Pod都有一个从其节点的Pod CIDR范围分配的单个IP地址。这个IP地址由Pod中运行的所有容器共享,并将它们连接到集群中运行的其他Pod。

每个服务都有一个IP地址,称为ClusterIP,由集群的VPC网络分配。

Kubernetes Pods将接收一个真实的IP地址,就像Docker Pods由于brdige网络接口而发生的情况一样:真正难以理解的基本上是不同节点之间的Pod-to-Pod连接,这是在iptables/nftables/IPVS的帮助下通过kube-proxy执行的黑魔法(根据您在节点中运行的组件(。

关于分配给ClusterIP类型的Service的IP地址,情况有所不同:事实上,它是一个虚拟IP,用于根据需要透明地重定向到端点。

Kubernetes网络可能看起来很难理解,但我们很幸运,因为Tim Hockin提供了一个非常好的演讲,名为Life of a Packet,它将为您提供它如何工作的清晰概述。

最新更新