1.11.3. 集群网络系统¶
集群网络系统是k8s的核心系统,网络系统的4个主要问题。
高度耦合的容器间通信,
pod间通信,
pod和服务间通信
外部和服务间通信
1.11.3.1. k8s网络模型¶
每个pod都有它自己的地址,在这个模型里,从端口分配、命名、服务发现、负载均衡、应用配置和迁移的角度来看,pod都可以视为虚拟机或者物理机器。
基本要求
节点上的pod可以不通过nat和其他的任何节点上的pod进行通信。
节点上的代理(kubelet)可以和节点上的所有pod进行通信。
Kubernetes 的 IP 地址存在于 Pod 范围内 - 容器共享它们的网络命名空间 - 包括它们的 IP 地址和 MAC 地址。 这就意味着 Pod 内的容器都可以通过 localhost 到达各个端口。 这也意味着 Pod 内的容器都需要相互协调端口的使用,但是这和虚拟机中的进程似乎没有什么不同, 这也被称为“一个 Pod 一个 IP”模型。