一、概述
k8s从Docker网络模型(NAT方式的网络模型)中独立出来形成一套新的网络模型。该网络模型的目标是:
每一个Pod都拥有一个扁平化共享网络命名空间的IP,称为PodIP,通过PodIP, Pod能够跨网络与其他物理机和Pod进行通信。一个Pod 一个IP的(IP-Per-Pod) 模型创建了一个干净、反向兼容的模型。
在该模型中,从端口分配,网络,域名解析,服务发现,负载均衡,应用配置和迁移等角度,Pod都能够被看成虚拟机或物理机,这样应用就能够平滑地从非容器环境(物理机或虚拟机)迁移到同一个Pod的容器环境。
为了实现这个网络模型,在k8s中需要解决几个问题:
- 容器间通信
- Pod间通信
- Service到Pod的通信