一、flannel工作原理
1、host-gw模型
1)概念:相当于直接添加了一条静态路由
2)适用:二层网络中
2、VxLAN模型
1)概念:创建一个flannel.1设备,打通一个隧道,通信需要先封装头部信息,在通过隧道传输
2)适用:三层网络中
二、flannel之SNET规则,容器内部不用nat转换
1、修改iptables优化SNAT规则,否则在访问时,其他节点记录的是node节点的ip 192.168.112.22,而不是pod集群内部的172.7.22.x
安装服务
yum install -y iptables-services
2、启动服务
systemctl start iptables
systemctl enable iptables
3、查找规则
iptables-save |grep -i postrouting
4、删除需要优化得规则
iptables -t nat -D POSTROUTING -s 172.7.64.0/24 ! -o docker0 -j MASQUERADE
5、添加规则
iptables -t nat -I POSTROUTING -s 172.7.64.0/24 ! -d 172.7.0.0/16 !-o docker0 -j MASQUERADE 源地址(172.7.64.0/24)不是去往目标地址(172.7.0.0/16),并且不从docker0出去的才做nat转换
6、删除限制
iptables-save |grep -i reject iptables -t filter -D INPUT -j REJECT --reject-with icmp-host-prohibited iptables -t filter -D FORWARD -j REJECT --reject-with icmp-host-prohibited
7、保存规则
iptables-save > /etc/sysconfig/iptables
8、修改后会影响到docker原本的iptables链的规则,所以需要重启docker服务
systemctl restart docker