计算机系统应用教程网站

网站首页 > 技术文章 正文

calico与flannel对比 calrafni和caliani

btikc 2024-10-23 09:12:00 技术文章 13 ℃ 0 评论

calico与flannel对比

Kubernetes 跨主机容器之间的通信组件,目前主流的是 flannel 和 calico


calico 包括如下重要组件:Felix,etcd,BGP Client,BGP Route Reflector。下面分别说明一下这些组件。

Felix:主要负责路由配置以及 ACLS 规则的配置以及下发,它存在在每个 node 节点上。

etcd:分布式键值存储,主要负责网络元数据一致性,确保 Calico 网络状态的准确性,可以与 kubernetes 共用;

BGPClient(BIRD), 主要负责把 Felix 写入 kernel 的路由信息分发到当前 Calico 网络,确保 workload 间的通信的有效性;

BGPRoute Reflector(BIRD), 大规模部署时使用,摒弃所有节点互联的 mesh 模式,通过一个或者多个 BGPRoute Reflector 来完成集中式的路由分发


一: calico 原理

下图描述了从源容器经过源宿主机,经过数据中心的路由,然后到达目的宿主机最后分配到目的容器的过程。


整个过程中始终都是根据 iptables 规则进行路由转发,并没有进行封包,解包的过程,这和 flannel 比起来效率就会快多了

下发 ACL 规则


二:flannel 原理



三:对比

从上述的原理可以看出,flannel 在进行路由转发的基础上进行了封包解包的操作,这样浪费了 CPU 的计算资源。下图是从网上找到的各个开源网络组件的性能对比。可以看出无论是带宽还是网络延迟,calico 和主机的性能是差不多的

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表