hdss7-21(10.4.7.21) kubectl get pods -o wide进入hdss7-21上面的容器中: kubectl exec -ti nginx-ds-z546t /bin/bash
![]()
再在 hdss7-22(10.4.7.22)上面查看日志: kubectl logs -f nginx-ds-7nbg4
如果这里看到的是宿主机的IP 地址,说明它做了SNAT 转换。但在集群内部,都在同一个网络里面,是不需要做SNAT转换。 #######++++++++++ hdss7-21(10.4.7.21) iptables-save|grep -i postrouting
来源地址是,172.7.21.0/24 , 不是从docker0这个网络设备出网的,做源地址转换 我们需要的是:如果出网的地址是172.7.0.0/16 这个网络,也不需要做源地址转换。 #####++++++++ hdss7-21(10.4.7.21) hdss7-22(10.4.7.22) 上需都安装。 yum install iptables-services -y systemctl start iptables systemctl enable iptables ##########++++++++ iptables -t nat -D POSTROUTING -s 172.7.21.0/24 ! -o docker0 -j MASQUERADE
再插入一条规则: iptables -t nat -I POSTROUTING -s 172.7.21.0/24 ! -d 172.7.0.0/16 ! -o docker0 -j MASQUERADE 源地址 是172.7.21.0/24,不是去往 目标地址172.7.0.0/16 这个网络,也不是从docker0网络设备出网的,才做源地址转换(SNAT)
######++++++++ iptables -t filter -D INPUT -j REJECT --reject-with icmp-host-prohibited iptables -t filter -D FORWARD -j REJECT --reject-with icmp-host-prohibited
![]()
hdss7-21 hdss7-22 上面都删除这两条规则。 #########+++++++++ 把当前规则 ,保存起来。 iptables-save >/etc/sysconfig/iptables
![]()
再看hdss7-22 上面的日志:
#####++++++++ 接下来把hdss7-22(10.4.7.22)上面的网络也进行优化: iptables-save|grep -i postrouting iptables -t nat -D POSTROUTING -s 172.7.22.0/24 ! -o docker0 -j MASQUERADE iptables -t nat -I POSTROUTING -s 172.7.22.0/24 ! -d 172.7.0.0/16 ! -o docker0 -j MASQUERADE
##########++++++++++ hdss7-21(10.4.7.21) 监控日志:
hdss7-22(10.4.7.22)上面,进入容器,curl 172.7.21.2
![]()
hdss7-21(10.4.7.21)
![]()