简介
该系列目的搞懂各种 CNI 是如何为 pod,service 等提供网络的。
containernetworking 提供多种插件
- 管理接口的 main 插件 bridge,ipvlan,macvlan,ptp 等
- IPAM 的插件 dhcp,host-local 等
- 其他插件如 portmap,tunning 等
分析流量部分包括:
- 同 node 不同 pod 之间
- 不同 node 上 pod 之间
- Node 到本 node 上的 pod
- Node 到其他 node 上的 pod
- Pod 访问 service clusterIP
- Node 访问 service clusterIP
- 外部访问 service NodePort,且 backend pod 在当前节点
- 外部访问 service NodePort,且 backend pod 不在当前节点
- NetworkPolicy
NetworkPolicy 介绍见 CNI 网络流量分析(二)Kubernetes NetworkPolicy
跨节点通信
通常指 不同 node 上的 pod 通信;通常有两种方式。
- overlay
Overlay 指隧道封装模式,通过对流量加报文头实现不同 node 的转发,如 flannel udp、vxlan,calico ipip,kubeovn geneve 等
通常只需要三层可达即可 - 路由
通过 node 上路由表进行转发,如 fannel host-gw,calico bgp 等
如果没有专门设备构建大二层网络的情况下,通常用于二层直接可达的网络,由于广播风暴等原因,通常规模较小。但少了解封包等操作,性能优于 overaly
flannel
详细介绍: CNI 网络流量分析(三)Flannel 介绍与原理
推荐的模式:
- VXLAN CNI 网络流量分析(五)Flannel vxlan
- host-gw CNI 网络流量分析(四)Flannel host-gw
- WireGuard
- UDP CNI 网络流量分析(六)Flannel udp && Alloc
实验性质的模式:
- Alloc
- IPIP
- IPSec