集群网络架构是 K8s 中比较复杂的,最让用户头痛的方面之一。K8s 拥有众多的 CNI 插件,该如何做好CNI的技术选型,这让用户更加懵逼!
CNI 比较
网络插件 | 性能 | 隔离策略 | 开发者 |
---|---|---|---|
kube-router | 最高 | 支持 | |
calico | 2 | 支持 | |
canal | 3 | 支持 | |
flannel | 3 | 无 | CoreOS |
romana | 3 | 支持 | |
Weave | 3 | 支持 | Weaveworks |
说明:
- Flannel: 最成熟、最简单的选择
- Calico: 性能好、灵活性最强,目前的企业级主流
- Canal: 将Flannel提供的网络层与Calico的网络策略功能集成在一起。
- Weave: 独有的功能,是对整个网络的简单加密,会增加网络开销
- Kube-router: kube-router采用lvs实现svc网络,采用bgp实现pod网络.
CNI-Genie
CNI-Genie 是一个可以让k8s使用多个cni网络插件的组件,暂时不支持隔离策略。