美文网首页
Flannel插件原理

Flannel插件原理

作者: Rami | 来源:发表于2023-06-11 17:30 被阅读0次

Flannel之所以可以搭建k8s依赖的底层网络,是因为它能实现以下两点。

(1)它能协助Kubernetes,给每一个Node上的Docker容器都分配互不冲突的IP地址。
(2)它能在这些IP地址之间建立一个覆盖网络(OverlayNetwork),通过这个覆盖网络,将数据包原封不动地传递到目标容器内。

通过下图看看Flannel是如何实现这两点的。

1.jpeg

可以看到,Flannel首先创建了一个名为flannel0的网桥,而且这个网桥的一端连接docker0网桥,另一端连接一个叫作flanneld的服务进程。

flanneld进程它上连etcd,利用etcd来管理可分配的IP地址段资源,同时监控etcd中每个Pod的实际地址,并在内存中建立了一个Pod节点路由表;它下连docker0和物理网络,使用内存中的Pod节点路由表,将docker0发给它的数据包包装起来,利用物理网络的连接将包投递到目标flanneld上,从而完成Pod到Pod之间的直接地址通信。

Flannel之间底层通信协议的可选技术包括UDP、VxLan、AWS VPC等多种方式。通过源flanneld封包、目标flanneld解包,docker0最终收到的就是原始数据,对容器应用来说是透明的,应感觉不到中间Flannel的存在。

我们看一下Flannel是如何做到为不同Node上的Pod分配IP而不产生冲突的。其实想到Flannel使用了集中的etcd存储就很容易理解了。它每次分配的地址段都在同一个公共区域获取,这样大家自然能够相互协调,不产生冲突了。而且在Flannel分配好地址段后,后面的事情是由Docker完成的,Flannel通过修改Docker的启动参数将分配给它的地址段传递进去:

--bip=172.17.18.1/24

通过这些操作,Flannel就控制了每个Node上的docker0地址段的地址,也就保障了所有Pod的IP地址都在同一个水平网络中且不产生冲突了。

Flannel完美地实现了对Kubernetes网络的支持,但是它引入了多个网络组件,在网络通信时需要转到flannel0网络接口,再转到用户态的flanneld程序,到对端后还需要走这个过程的反过程,所以也会引入一些网络的时延损耗。

另外,Flannel模型默认采用了UDP作为底层传输协议,UDP本身是非可靠协议,虽然两端的TCP实现了可靠传输,但在大流量、高并发的应用场景下还需要反复测试,确保没有问题。

相关文章

  • k8s集群的安装部署(三)

    05 所有node节点配置flannel网络插件 flannel网络插件主要是为了解决docker宿主机在不同节点...

  • k8s 报错总结

    flannel网络插件,跨主机pod无法通信 故障现象 本机实验 k8s版本1.18.3flannel 在pod中...

  • 配置flannel网络

    节点内的容器跨节点通信ß需要网络插件,当前就用 flannel,需要在所有节点上安装。 安装 flannel 配置...

  • Flannel 网络插件

    VxLan 虚拟可扩展局域网,一种overlay的网络技术,使用MAC in UDP方法封包 Pod1通过eth0...

  • Kubernetes网络分析之Flannel

    Flannel是cereos开源的CNI网络插件,下图flannel官网提供的一个数据包经过封包、传输以及拆包的示...

  • Flannel网络原理

    overlay网络简介 覆盖网络就是应用层网络,它是面向应用层的,不考虑或很少考虑网络层,物理层的问题。 详细说来...

  • Flannel网络原理

    overlay网络简介 覆盖网络就是应用层网络,它是面向应用层的,不考虑或很少考虑网络层,物理层的问题。 详细说来...

  • 集群环境搭建-------安装网络插件(flannel)

    kubernetes支持多种网络插件,比如flannel、calico、canal等等,任选一种使用即可,本次选择...

  • 三大公有云厂商 Kubernetes 的网络模型

    自建 Kubernetes 集群 自建时一般选用 Flannel CNI 网络插件,需要给 Pod 和 Servi...

  • Kubernetes UI图形化界面

    1.安装Flanne(构建overlay网络)Flannel网络原理 master node 看获取的ip地址是否...

网友评论

      本文标题:Flannel插件原理

      本文链接:https://www.haomeiwen.com/subject/jpaxydtx.html