kubernetes overlay虚拟化网络解析

前面讲了underlay的2种主要思路,一种是大2层方案,一种是3层网关路由方案。

今天简单讲讲overlay方案,它的网络性能差,但是对物理网络没有要求,经常作为上手K8S的”第一次选择”。

容器网段独立,不存在于物理世界。

container1是172.168.1.200,发包给172.168.1.201。

container1发出的包首先默认网关到所在node1,这一步操作是很常规的。

包进入node1后,经过netfilters入包流程,判定匹配路由规则:

172.168.1.201/32 via 192.168.2.101 dev tun0

这条规则的特殊之处在于,tun0是一个隧道设备,这条规则中的via将会指导tun0将流入的包进行2层封装IP头,将实际目标IP地址设置为192.168.2.101,源地址也将改为192.168.2.100。

原先的IP包作为payload封装在新的IP头内,因为新的目标IP地址和源地址都是物理世界IP,可以经过任意网络结构传输。

node2收到包后,会自动拆去IP封装得到payload中的原始IP包,然后经过netfilters判断路由后,将法网container2 IP的包送入容器的虚拟网卡。

因为解包后才送入容器,因为container2看到的来源IP仍旧是container1,也就实现overlay的整个过程。

我录制了一个overlay的解说视频,供大家更具体的了解整个过程:

kubernetes overlay虚拟化网络解析

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~