崇尚新闻网

崇尚新闻网访谈

calico K8s CNI网络最强对比:Flannel、Calico、Canal和W

2021-06-22 22:48:40 访谈

邵杰

网络架构是Kubernetes中比较复杂的一个方面,让很多用户头疼。Kubernetes网络模型本身对一些特定的网络功能有一定的要求,但在实现上也有一定的灵活性。因此,行业内有许多不同的网络方案来满足特定的环境和要求。

CNI的意思是集装箱网络接口,这是一个标准的设计,以便用户在创建或销毁集装箱时更容易配置集装箱网络。在本文中,我们将重点探讨和比较最流行的CNI插件:法兰绒、印花棉布、编织和运河(技术上是多个插件的组合)。这些插件不仅可以满足Kubernetes的网络需求,还可以为Kubernetes集群管理员提供一些特定的网络功能。

背 景

容器网络是容器选择连接到其他容器、主机和外部网络(如互联网)的机制。容器的运行时提供了多种网络模式,每种模式都会产生不同的体验。例如,Docker可以默认为容器配置以下网络:

none:将容器添加到一个容器专门的网络堆栈中,没有对外连接。host:将容器添加到主机的网络堆栈中,没有隔离。default bridge:默认网络模式。每个容器可以通过IP地址相互连接。自定义网桥:用户定义的网桥,具有更多的灵活性、隔离性和其他便利功能。

Docker还允许用户通过其他驱动程序和插件配置更高级的网络(包括多主机覆盖网络)。

CNI的初衷是创建一个框架,用于在配置或销毁容器时动态配置适当的网络配置和资源。以下链接中的CNI规范总结了用于配置网络的插件接口,它使容器运行时能够与插件相协调:

https://github . com/container networkking/CNI/blob/master/SPEC . MD

插件负责配置和管理接口的IP地址,一般提供IP管理、每个容器的IP分配、多主机连接等相关功能。容器运行时调用网络插件,网络插件在容器启动时分配IP地址并配置网络,在容器删除时再次调用,清理这些资源。

运行时或协调器决定容器应该加入哪个网络以及需要调用哪个插件。然后,插件将接口添加到容器网络命名空房间,作为veth对的一端。然后,它在主机上进行更改,包括将veth的其他部分连接到网桥。之后,它通过调用一个单独的IPAM(IP地址管理)插件来分配IP地址和设置路由。

在Kubernetes中,ku blet可以在适当的时候调用它找到的插件,为ku blet启动的pod自动配置网络。

术 语

在比较CNI插件之前,我们可以对将在网络中看到的相关术语有一个全面的了解。无论是阅读这篇文章,还是以后接触其他与CNI相关的内容,了解一些常用术语总是非常有用的。

一些最常见的术语包括:

第2层网络: OSI(Open Systems Interconnections,开放系统互连)网络模型的“数据链路”层。第2层网络会处理网络上两个相邻节点之间的帧传递。第2层网络的一个值得注意的示例是以太网,其中MAC表示为子层。第3层网络: OSI网络模型的“网络”层。第3层网络的主要关注点,是在第2层连接之上的主机之间路由数据包。IPv4、IPv6和ICMP是第3层网络协议的示例。VXLAN:代表“虚拟可扩展LAN”。首先,VXLAN用于通过在UDP数据报中封装第2层以太网帧来帮助实现大型云部署。VXLAN虚拟化与VLAN类似,但提供更大的灵活性和功能(VLAN仅限于4096个网络ID)。VXLAN是一种封装和覆盖协议,可在现有网络上运行。Overlay网络:Overlay网络是建立在现有网络之上的虚拟逻辑网络。Overlay网络通常用于在现有网络之上提供有用的抽象,并分离和保护不同的逻辑网络。封装:封装是指在附加层中封装网络数据包以提供其他上下文和信息的过程。在overlay网络中,封装被用于从虚拟网络转换到底层地址空间,从而能路由到不同的位置(数据包可以被解封装,并继续到其目的地)。网状网络:网状网络(Mesh network)是指每个节点连接到许多其他节点以协作路由、并实现更大连接的网络。网状网络允许通过多个路径进行路由,从而提供更可靠的网络。网状网格的缺点是每个附加节点都会增加大量开销。BGP:代表“边界网关协议”,用于管理边缘路由器之间数据包的路由方式。BGP通过考虑可用路径,路由规则和特定网络策略,帮助弄清楚如何将数据包从一个网络发送到另一个网络。BGP有时被用作CNI插件中的路由机制,而不是封装的覆盖网络。

在理解了技术术语和支持各种插件的各种技术之后,我们可以开始探索一些最流行的CNI插件。

CNI比较

法兰绒

链接:https://github.com/coreos/flannel

由CoreOS开发的法兰绒项目可能是最直接、最受欢迎的CNI插件。它是容器编排系统中网络结构最成熟的例子之一,旨在实现容器和主机之间更好的网络。随着CNI概念的兴起,法兰绒CNI插件是一个早期的介绍。

与其他方案相比,法兰绒相对容易安装和配置。它被打包成一个单独的二进制文件Flanneld,默认情况下可以被很多常见的Kubernetes集群部署工具和很多Kubernetes发行版安装。法兰绒可以使用Kubernetes集群现有的etcd集群来使用API存储其状态信息,不需要特殊的数据存储。

法兰绒配置第3层IPv4覆盖网络。它创建了一个跨越集群中每个节点的大型内部网络。在这个覆盖网络中,每个节点都有一个子网,用于在内部分配IP地址。配置pod时,每个节点上的Docker桥接口为每个新容器分配一个地址。同一台主机上的Pods可以使用Docker桥进行通信,而不同主机上的PODs使用绒布将流量封装在UDP数据包中,以便路由到适当的目的地。

法兰绒有几种不同类型的后端用于封装和路由。默认推荐的方法是使用VXLAN,因为VXLAN性能更好,需要的人工干预更少。

一般来说,法兰绒是大多数用户的好选择。从管理的角度来说,它提供了一个简单的网络模型,用户只需要一些基础知识就可以设置适合大多数用例的环境。一般来说,一开始用法兰绒是安全的选择,直到你开始需要它不能提供的东西。

白棉布

链接:https://github.com/projectcalico/cni-plugin

Calico是Kubernetes生态系统中另一种流行的网络选择。法兰绒虽然被公认为最简单的选择,但Calico以性能和灵活性著称。Calico功能更全面,不仅提供主机和pod之间的网络连接,还涉及网络安全和管理。卡利科CNI插件将卡利科的功能封装在CNI框架内。

在新配置的满足系统要求的Kubernetes集群上,用户可以通过应用单个清单文件快速部署Calico。如果您对Calico的可选网络策略功能感兴趣,您可以将其他清单应用于群集以启用这些功能。

虽然部署Calico所需的操作看起来相当简单,但它创建的网络环境既有简单的属性,也有复杂的属性。与法兰绒不同,印花布不使用覆盖网络。相反,Calico配置了第3层网络,使用BGP路由协议在主机之间路由数据包。这意味着当在主机之间移动时,不需要将数据包包装在额外的封装层中。BGP路由机制可以在本地引导数据包,而无需在流量层额外打包流量。

除了性能优势之外,当出现网络问题时,用户还可以使用更传统的方法进行故障排除。虽然用VXLAN等技术封装也是一个很好的解决方案,但是这个过程中处理数据包的方式在同一个领域很难跟踪。借助Calico,标准调试工具可以访问与简单环境中相同的信息,使更多的开发人员和管理员更容易理解行为。

除了网络连接,Calico还以其先进的网络功能而闻名。网络战略是其最受欢迎的功能之一。此外,Calico还可以与服务网格Istio集成,从而在服务网格层和网络基础设施层解释和实现集群内工作负载的策略。这意味着用户可以配置强大的规则来描述pod应该如何发送和接收流量,提高安全性和控制网络环境。

如果您的环境支持网络策略非常重要,并且您还需要其他性能和功能,那么Calico将是一个理想的选择。此外,如果您现在或将来可能需要技术支持,Calico提供商业支持。一般来说,当你想长期控制网络的时候,Calico是一个不错的选择,而不是只配置一次就忘了。

运河

链接:https://github.com/projectcalico/canal

运河也是一个有趣的选择,原因很多。

一、Canal是一个项目的名称,试图将法兰绒提供的网络层与Calico的网络策略功能进行整合。然而,当投稿人完成了详细的工作后,他们发现,显然,如果法兰绒和印花布的标准化和灵活性得到了保证,那么集成就没有那么必要了。结果,这个官方项目变得有些“未完成”,但它已经达到了将两种技术一起部署的预期能力。为此,即使这个项目不复存在,业界也会习惯性地把法兰绒和印花布的构成称为“运河”。

因为Canal是法兰绒和印花布的结合体,它的优势就在于这两种技术的交集。网络层使用法兰绒提供的简单覆盖,无需额外配置即可在许多不同的部署环境中运行。在网络策略上,Calico强大的网络规则评估为基础网络提供了更多的补充,从而提供了更多的安全和控制。

在确保集群满足必要的系统需求(https://docs . projectcalico . org/v 3.6/入门/Kubernetes/requirements)后,用户需要应用两个manifest来部署Canal,这使得它的配置比任何单个项目都要困难。如果一个企业的IT团队打算改变自己的网络方案,希望在网络策略上进行一些实验,获得一些经验后再实施改变,那么Canal是一个不错的选择。

一般来说,如果你喜欢法兰绒提供的网络模型,但是觉得Calico的一些特性很吸引人,那就试试Canal。从安全角度来说,定义网络策略规则的能力是一个很大的优势,是Calico在很多方面的杀手级功能。能够将这项技术应用到熟悉的网络层意味着您可以获得更强大的环境,并节省大部分过渡过程。

链接:https://www.weave.works/oss/net/

Weave是由Weaveworks提供的Kubernetes CNI网络选项,其模式不同于迄今为止讨论的所有网络方案。Weave在集群中的每个节点之间创建一个网状覆盖网络,参与者可以灵活地路由。这个特性,结合一些其他独特的功能,可以在一些可能的问题下智能地路由。

要创建网络,Weave依赖于网络中每台主机上安装的路由组件。然后,这些路由器交换拓扑信息,以维护可用网络环境的最新视图。当流量需要发送到位于不同节点的PODs时,Weave路由组件将自动决定是通过“快速数据路径”发送流量,还是退回到“套筒”数据包转发方法。

快速数据路径依靠内核的本机Open vSwitch数据路径模块将数据包转发到适当的pod,而无需多次进出用户空。编织路由器更新开放虚拟交换机配置,以确保内核层有关于如何路由传入数据包的准确信息。相反,当网络拓扑不适合快速数据路径路由时,可以使用套筒模式作为备份。它是一种慢速封装模式,当快速数据路径缺乏必要的路由信息或连接时,它可以路由数据包。当流量通过路由器时,它们知道哪些对等点与哪些媒体访问控制地址相关联,使它们能够以更少的跳数更智能地路由后续流量。当可用路由因网络变化而改变时,这种相同的机制可以帮助每个节点进行自我校正。

和Calico一样,Weave也为Kubernetes集群提供网络策略功能。设置Weave时,网络策略将自动安装和配置,因此用户除了添加网络规则之外,不需要配置。Weave的一个独特功能是对整个网络进行简单加密,这是其他网络方案所没有的。虽然这将增加相当大的网络开销,但是Weave可以使用NaCl加密(http://nacl.cr.yp.to)来自动加密套筒流量的所有路由流量。对于快速数据路径流量,因为需要在内核中加密VXLAN流量,所以Weave会使用IPsec ESP对快速数据路径流量进行加密。

对于那些寻找功能丰富的网络,希望不要增加太多复杂性或管理难度的人来说,Weave是一个很好的选择。它相对容易设置,提供许多内置和自动配置功能,并且可以在其他解决方案可能失败的情况下提供智能路由。网状拓扑确实限制了可以合理容纳的网络规模,但对大多数用户来说并不是大问题。此外,Weave还提供收费的技术支持,可以为企业用户提供故障排除等技术服务。

结 语

库伯内特采用的CNI标准使库伯内特生态系统中的网络解决方案蓬勃发展。更多的选择意味着大多数用户将能够找到适合其当前需求和部署环境的CNI插件,并在环境发生变化时找到新的解决方案。

不同的企业有不同的运营需求,因此拥有一系列复杂程度不同、功能丰富的成熟解决方案,将极大地帮助Kubernetes在满足不同用户独特需求的同时,提供一致的用户体验。

以上就是【calico K8s CNI网络最强对比:Flannel、Calico、Canal和W】的详细内容,如果您不了解calico K8s CNI网络最强对比:Flannel、Calico、Canal和W的具体信息,请浏览下面calico K8s CNI网络最强对比:Flannel、Calico、Canal和W的最新相关资讯。

查看更多calico K8s CNI网络最强对比:Flannel、Calico、Canal和W相关详细内容

相关推荐:

水晶公主的故事 水晶公主在吗?人生第一个网名叫什么?

╮大家好,欢迎回到美丽的女孩。╭╯ 呸,你知道有没有人和漂亮女孩有同样的疑问 为什么我们没有受过训练 但是你能读懂火星人? 我一直认为这可能是给每个人的礼物 结果05后的我好像没怎么懂...?? 如泥古к к ф理解这句话 说明你老了] 今天我们来看看老年网民 #使用的第一个屏幕名称#!! 1, 我的名单上还有一个名字。出租车.... 2, 总觉得在摩尔庄园看过《快乐女声》 3, 郭敬明和安...

科学家的小故事 【回顾】科学家的故事我来说

通过讲故事,孩子们不仅锻炼了自己的勇气,提高了口头表达能力,提高了阅读水平,还了解了科学家的故事、魅力和精神,努力成为对国家和社会有用的科技人才。...

办公椅扶手 解密|你的办公椅真的适合你吗?

对于上班族来说,办公椅就像是第二张床,上班大部分时间都要坐在上面,所以办公椅关系到人的健康。 一把好的办公椅不仅能让我们的身体感到放松,还有助于提高工作效率。购买办公椅一般会注意哪些问题?下面关晓梅告诉你。 办公椅深度 在更正式的场合,人们应该坐直,而如果人们想坐直,就应该在椅子前面采取“浅”的姿势。在家的话,人会更放松,这种情况不能再深入了。所以买的时候要先坐下,坐下的时候尽量感受全身的深度,...

览怎么读 晨览作文告诉你孩子不爱阅读怎么办?

“孩子三年级,根本不会写作文。我也知道,如果你想积累更多的阅读,你孩子的作文分数可以提高。但是,孩子们不看家里的课外书和作文书。我能怎么办?” 这是一个家长的困惑。 陈岚认为这位母亲说出了很多家长的心声,三年级的孩子需要正式开始写作,很多孩子在写作之初就输在了起跑线上,很多家长都很焦虑,为什么会出现这种情况?应该如何解决这个问题?晨游带大家分析。 孩子高一有一篇小作文“看图说话”,高二就变成了“...

园田真理 假面骑士:部分旧十年的假面骑士女神欣赏,你最喜欢哪一个?

假面骑士:在过去的十年里,一些假面骑士女神欣赏它。你最喜欢哪一个? 泽渡樱子 凤古镇鱼 田源真相 Kusakabe Xu 哈娜 天美晶 叶榛 野村静香 轻夏海...

南美栗鼠 出名已久的“鼠类”小宠,你知道哪些。

随着公众对宠物多样性的要求越来越高,一些奇怪的小生物成为人们新的攻击目标,而这个时代的主角就是“老鼠”。说到老鼠,大家会想到“老鼠过街,人人喊打”吗? 如果把下面的老鼠当成大家喊打的老鼠,那就冤枉死了。占地面积小空、喂食方便、亲人、可爱等特点逐渐让这些老鼠宠物出现在人们面前。我们来看看你喜欢什么老鼠宠物! ! 1.仓鼠 仓鼠是一种可爱的小动物,喂食率居所有啮齿类宠物之首。食物存放在自己的脸颊...