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”模型。