Calico网络方案

       Fannel纯三层路由的方式实现不同宿主机间的容器通信,这种方式工作的前提是宿主机之间是二层连通的。需要注意的是,宿主机之间二层不连通的情况也是广泛存在的,这就不得不提到calico网络方案了。

  • Calico网络方案同时解决了宿主机二层连通和不连通的的场景下,容器之间通过纯三层路由通信的问题。
  • Fannel通过etcd和宿主机上的fanneld维护路由信息,calico使用了BGP自动在集群里分发、更新、记录路由。在大规模网络环境下,其可靠性和可扩展性是fannel方案不可比的。

 

下面就开始讲述calico网络方案的场景。先了解下calico的几个功能模块:

  • Calico的CNI插件。这是calico与k8s对接的部分。
  • Felix。它是一个daemonset,负责在宿主机上插入更新路由规则、配置ACLs、维护calico插件所需的网络设备等工作。
  • BIRD。它就是BGP的客户端,负责在集群里分发、收集路由信息。
  • BIRD Reflector。大规模部署时,摒弃所有节点互联的mesh模式,通过一个或者多个BGP Route Refletor集中式的路由分发。

       Calico项目,实际上是将集群里的所有宿主机,都当作边界路由器,它们组成了一个全连通的网络BGP Mesh,互相之间通过BGP协议交换路由规则,这些节点成为BGP Peer。

 

1. 宿主机二层互通场景

        如图Figure -- 1所示,calico插件与fannel的host-gw模式的另一个不同之处就是,它不会在宿主机上创建类似docker0、cni0这样的网桥设备,Veth Pair在宿主机的一端的接口直接暴露在宿主机上,并通过设置路由规则,将容器IP暴露到宿主机的通信路由上。

                                                                            Figue -- 1

 

 

分析下IP包转发的流程:

1)节点1通过Veth Pair在宿主机一侧的端口收到“原始IP”包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值