Kubersphere安装好以后使用的是calico网络插件,兼容CNI

Calico与Flannel,容器虚拟化网络方案中涉及到的方案是2个:基于隧道、基于路由,基于隧道具备普适性,比如flannel的vxlan、udp模式,Calico的IPIP模式

每个主机上都要安装calico或者flannel的agent进程,这些agent进程会从etcd这样的集中式数据库中查询到一个私有网段,然后这台主机上的容器后续就都用这些ip地址了,核心就是每个agent拿到一个网段后,就修改dockerd的启动参数,加上--bip,就可以控制容器的IP地址了。

既然是隧道,就好像汽车坐轮船摆渡一样,涉及到数据包的封包/解包,意思就是自己无法把数据包发出去,那就借助外力,很显然,摆渡是需要成本的,会消耗CPU以及增加网络延迟。

封包/解包

  1. 容器和容器之间通信(跨主机),数据包的源IP和目的IP都是容器的IP,很明显是无法路由的,下面还是耍魔法
  2. 得在host主机上做一个魔法操作,让这个容器的数据包A能够送到host主机上的flannel或者calico这种网络插件的agent进程,等于说汽车得找到轮船,由轮船帮你把数据包送出去
  3. agent拿到数据包以后,就会把数据包进行改头换面,把数据包A重新塞到另外一个数据包B里面,这个数据包B的源IP和目的IP都是host主机的IP地址。很明显,host主机的IP是互联互通的;
  4. 数据包送到目标宿主机后,解封,得到原始数据包,然后在宿主机上想办法,把这个数据包再送到对应的容器里面去处理
  5. 这么一搞的话,2端的容器就有了一种互联互通的幻觉
  6. 因为host主机的IP地址是工作在OSI模型的第3层(第4层是TCP/UDP,第2层是MAC链路层),所以是可以跨路由的,也就是说宿主机本身跨网段经过路由器,也是没有任何影响的,这个隧道方案具备普适性了,优势很明显,只要host主机在IP层可以互联互通,就可以确保容器可以互联互通。
  7. 但是封包解包浪费CPU,额外封包增加的数据,会浪费带宽

flannel vxlan和calico ipip模式都是隧道方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值