K8S_04_flanneld工作原理

flannel 为什么能让两个宿主机上面的pod通信?




Flannel的host-gw 模型,就是在两台宿主机上添加了去往对端pod网络的一条路由。



你所有的运算节点在同一个二层网络下,flannel 用 host-gw 模型



flannel 的其他网络模型:

VxLAN ##会虚拟出来一个flannel.1 设备(网卡),两台宿主机上的flannel.1 组成了一个flannel 网络隧道。

'{"Network": "172.7.0.0/16", "Backend": {"Type": "VxLAN"}}'


直接路由模型:VxLAN 和 直接路由的混合模型

'{"Network": "172.7.0.0/16", "Backend": {"Type": "VxLAN","Directrouting": true}}'

当flannel发现两台宿主机在同一个二层网络下,就走,host-gw ,如果两台宿主机网络不再同一个二层网络下,就走VxLAN模型。

###########++++++

flannel 更换网络模型:
supervisorctl stop flanneld-7-21

再结束flanneld 进程

cd /opt/etcd
./etcdctl rm /coreos.com/network/config
./etcdctl set /coreos.com/network/config '{"Network": "172.7.0.0/16", "Backend": {"Type": "VxLAN"}}'