一、K8S的三种接口
CRI:容器运行时接口(docker containerd podman cri-o)
CNI:容器网络接口(flannel calico cilium)
CSI 容器存储接口(nfs ceph gfs oss s3 minio)
二、K8S的三种网络
节点网络:nodeIP,物理网卡的IP实现节点间的通信
Pod网络:podIP,Pod与Pod之间可通过Pod的IP相互通信
Service网络:clusterIP,在K8S集群内可通过service资源的clusterIP实现对Pod集群的网络代理转发
三、CNI 网络组件flannel
1、flannel的三种模式
UDP:出现最早的模式,但是性能最差,基于flanneld应用程序实现数据包的封装/解封装
VXLAN:flannel的默认模式,也是推荐使用的模式,性能比UDP模式更好,基于内核实现数据帧的封装/解封装,而且配置简单使用方便
HOST-GW :性能最好的模式,但是配置负载,且不能跨网段
2、VLAN 和 VXLAN 的区别
作用不同:VLAN主要用作于在交换机上逻辑划分广播域,还可以配合STP生成树协议阻塞路径接口,避免产生环路和广播风暴。VXLAN可以将数据帧封装成UDP报文,再通过网络层传输给其它网络,从而实现虚拟大二层网络的通信
VXLAN支持更多的二层网络:VXLAN最多可支持 2^24 个;VLAN最多支持 2^12 个(4096-2)
VXLAN可以防止物理交换机MAC表耗尽:VLAN需要在交换机的MAC表中记录MAC物理地址;VXLAN采用隧道机制,MAC物理地址不需记录在交换机
3、flannel的UDP模式工作原理
①原始数据包从源主机的Pod容器发出到cni0网桥接口,再由cni0转发到fla