白话flannel和calico网络原理

栏目: 编程工具 · 发布时间: 5年前

内容简介:今天看了一些K8S容器虚拟化网络的博客,对网络插件的原理有了一些新的认识,在这里记录下来。容器虚拟化网络方案,总体分为2种截然不同的发展路线:下面分别说一下这两种思路的原理,以及和flannel、calico的关系。

今天看了一些K8S容器虚拟化网络的博客,对网络插件的原理有了一些新的认识,在这里记录下来。

概括

容器虚拟化网络方案,总体分为2种截然不同的发展路线:

  • 基于隧道
  • 基于路由

下面分别说一下这两种思路的原理,以及和flannel、calico的关系。

基于隧道

隧道方案最具普适性,在任何网络环境下都可以正常工作,这与它的原理密不可分。

最常见的隧道方案是flannel vxlan模式,以及calico的ipip模式,其核心原理包含了2个部分。

分配网段

每台宿主机上都有网络插件的agent进程,它们连接到etcd集中式存储,从虚拟IP池中申请一个IP段占位己有。

宿主机上每个容器则从IP段中分配得到1个虚拟IP。

封装/解封

当不同宿主机上的容器互相访问时,数据包的源IP和目标IP都是容器IP。

数据包经过宿主机的agent进程进行封装后,新数据包的源IP和目标IP则变成了两端宿主机的物理IP。

数据包送到目标宿主机后,经过agent解封后得到原始数据包,并将数据包送入容器中处理,这就给两端容器营造了一种互通的感觉。

因为物理IP属于3层网络,可以在互联网中经过中间路由设备互相送达,所以隧道方案对宿主机之间的网络环境没有特殊要求,因此隧道方案具备普适性。

优势/劣势

优势就是对物理网络环境没有特殊要求,只要宿主机IP层可以路由互通即可。

劣势就是性能差,这需要从2方面看:

  • 封包和解包耗费CPU性能
  • 额外的封装导致带宽浪费,大约有30%左右的带宽损耗

flannel vxlan和calico ipip模式都是隧道方案,但是calico的封装协议IPIP的header更小,所以性能比flannel vxlan要好一点点。

基于路由

路由方案性能最好,原因是该方案不需要封包和解包,所以没有隧道方案的劣势,网络性能很好。

常见的路由方案包括了flannel的host-gw模式,以及calico的bgp模式。

下面以calico bpg模式为例,分析基于路由的方案原理,其包含了3个部分。

分配网段

每台宿主机也有agent,会从etcd中的虚拟IP池分配到一个IP子网段。

宿主机上每个容器则从该IP段中分配得到1个虚拟IP。

本地路由

假设我们在宿主机A上新建了一个容器,则该容器分配了一个虚拟IP,我们假设它是值是k。

agent会在本机配置一条路由规则,即:如果数据包的目标地址等于k,那么把数据包送到容器的虚拟网卡上。

另外一台宿主机B上的一个容器,其IP是m,向k容器发数据包,则数据包的目标地址是k,原地址是m。

既然路由方案是不使用隧道封包为物理IP在网络中流通的,那么该数据包又该如何送达到虚拟IP k呢?

广播路由

路由方案会采用如下的手段,搞定m到k的虚拟IP互通问题。

即宿主机A会通过某种方式(比如BGP广播协议)把自己的虚拟IP网段广播给宿主机B。

在宿主机B收到广播后,会给本机配置一条路由规则:如果数据包的目标地址属于宿主机A的虚拟IP网段,则把该数据包发给宿主机A的物理IP。

这条路由规则相当于为宿主机A的虚拟IP网段配置了转发网关,而这个网关就是宿主机A的物理IP。

这就要求,宿主机B和宿主机A在2层网络是互通的,也就是它们在一个交换机下面,可以基于MAC地址直接互通。

一旦该数据包被送往宿主机A的物理IP,则宿主机A就可以应用刚才讲过的” 本地路由 “规则了,即:数据包的目标IP是k,直接送给对应容器的虚拟网卡。

我们发现,整个过程中从m发往k的数据包采用的都是虚拟容器IP,没有经过任何封装和解封,而仅仅是通过宿主机A的本地路由+宿主机B收到的广播路由,就 实现了在2层网络互通环境下的高效通讯

优势/劣势

优势就是没有封包和解包过程,完全基于两端宿主机的路由表进行转发。

劣势包含2方面:

  • 要求宿主机处于同一个2层网络下,也就是连在一台交换机上,这样才能基于MAC通讯,而不需要在IP上动封包/解包的手脚。
  • 路由表膨胀导致性能降低,因为宿主机上每个容器需要在本机添加一条路由规则,而不同宿主机之间需要广播自己的网段路由规则。

参考资料:

博主无私的分享着知识,你愿意送他一顿热腾腾的早餐吗?

白话flannel和calico网络原理

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

WWW信息体系结构(影印版第2版)

WWW信息体系结构(影印版第2版)

Louis Rosenfeld / 清华大学出版社 / 2003-6 / 49.8

如今的网站和内联网已经变得比以前越来越大,越来越有价值,而且越来越复杂,同时其用户也变得更忙,也更加不能容忍错误的发生。数目庞大的信息、快速的变化、新兴的技术和公司策略是设计师、信息体系结构构建师和网站管理员必须面对的事情,而这些已经让某些网让看起来像是个快速增长却规划很差的城市——到处都是路,却无法导航。规划精良的信息体系结构当前正是最关键性的。 本书介绍的是如何使用美学和机械学的理念创建......一起来看看 《WWW信息体系结构(影印版第2版)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具