Kubernetes网络Flannel&Calico
Kubernetes上的网络通讯模型
k8s 有三种网络:Pod网络、集群网络、节点网络。
1. Pod网络:(Pod Ip + port)
Pod网络用于Pod虚拟机之间互联互通,所有Pod都处于同一个网络中。
Pod网络概念模型:
Pod相当于是K8s云平台中的虚拟机,它是K8s的基本调度单位。所谓Pod网络,就是能够保证K8s集群中的所有Pods(包括同一节点上的,也包括不同节点上的Pods),逻辑上看起来都在同一个平面网络内,能够相互做IP寻址和通信的网络,下图是Pod网络的简化概念模型:
1)同一个节点上的Pod网络
Pod依赖三个网络设备
eht0: 节点主机上的一个网卡,控制节点流量出入的设备,支持K8s节点之间Ip寻址和互通的设备。
docker0:虚拟网桥,可以理解为一个虚拟交换机,支持节点上Pod之间Ip寻址和互通的设备。
veth0: 上图Pod1的虚拟网卡,用于Pod内部容器互通和相互访问的虚拟设备。
eht0和docker0都是Linux系统支持的虚拟网络设备。
2. 集群网络:Service 是一个另外一个网络
3. 节点网络:node 节点也是另外一个网络,宿主机的内网网络。