如何使用CNI插件#
- 配置CNI配置文件
/etc/cni/net.d/xxnet.conf - 安装CNI二进制插件
/opt/cni/bin/xxnet - 在这个节点上创建Pod
- kubelet 根据CNI配置文件执行CNI插件
- Pod的网络配置完成
CNI插件 三种实现模式#
- Overlay
容器有自己的ip段
通过隧道的方式,容器网段的包封装成物理主机之间的包
不依赖底层网络 - 路由
底层网络需要二层可达的能力 - Underlay
强依赖底层网络
CNI插件的选择#
环境限制
- 虚拟化
网络限制多:限制二层访问,只能三层ip转发(overlay) - 物理机
网络限制少: underlay或者路由
- 虚拟化
功能需求
- 安全
NetworkPolicy - 集群外资源互联互通
underlay , calico-bgp - 服务发现与负载均衡
- 安全
性能需求
- Pod创建速度
- Pod网络性能
Overlay性能相对较差
Underlay和路由模式网络插件性能好
参考#
如何实现一个 Kubernetes 网络插件
阿里技术大牛 30 分钟讲透 Kubernetes : 理解 CNI 和 CNI 插件