Kubernetes容器开放接口系列:容器网络接口(CNI)

解决的问题

CNI 插件核心需要解决的问题:

  • 保证每个Pod拥有一个集群内唯一的IP地址
  • 保证不同节点的IP地址划分不会重复
  • 保证跨节点的Pod可以互相通信
  • 保证不同节点的Pod可以与跨节点的主机互相通信

Flannel

Flannel实质上是一种 overlay network (覆盖网络),也就是将TCP数据包装在另一种网络包里面进行路由转发和通信。Flannel是一种典型的Overlay网络,它将已有的网络作为基础,在其上建立叠加的逻辑网络,从而实现网络资源的虚拟化。Overlay网络有一定额外的封包和解包开销,因此对网络通信的性能有一定损耗。

Calico

区别:Flannel 就是在容器现有的网络之上通过封包解包做了一层虚拟化,Calico 自己创建了一个三层网络管理和控制容器的访问。Calico 采用了BPG 协议和kernel实现路由转发机制。

shikanon wechat
欢迎您扫一扫,订阅我滴↑↑↑的微信公众号!