SNAT的作用是什么?怎么解决nginx容器的访问问题?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。
一、SNAT规划优化作用
<代码>解决两宿主机容器之间的透明访问,如不进行优化,容器之间的访问,日志记录为宿主机的IP地址。代码>
1,宿主机访问172.7.22.2的nginx容器情况
2172 .7.22.2查看nginx访问日志
3,进入172.7.21.2的容器访问172.7.22.2的nginx容器,查看日志
4,再次查看172.7.22.2的nginx访问日志
5,解决问题:当容器172.7.21.2访问172.7.22.2的nginx容器时,展示的日志应为172.7.21.2
二,解决方法
<代码> 1,安装iptables-services组件 (root@test-nodes1 ~) # yum - y iptables-services安装 (root@test-nodes1 ~) # systemctl iptables开始 (root@test-nodes1 ~) # systemctl启用iptables 从/etc/systemd/system/basic.target.wants/iptables创建符号链接。/usr/lib/systemd/system/iptables.service服务。 ----------------------------------------------------------------------------------------------- 2,把以下iptable记录的伪装转向删除 (root@test-nodes1 ~) # iptables-save | grep - i postrouting) :POSTROUTING接受[68:4098] :KUBE-POSTROUTING -(0时) ——POSTROUTING - m评论,评论“kubernetes POSTROUTING rules"- j KUBE-POSTROUTING ——POSTROUTING - s 172.7.21.0/24 !- o docker0 - j化妆舞会,,,#删除此条 ——KUBE-POSTROUTING - m评论,评论“kubernetes服务交通要求SNAT"- m马克,马克0 x4000/0x4000 - j化妆舞会 ----------------------------------------------------------------------------------------------- 3,删除该记录 (root@test-nodes1 ~) # iptables - t nat - d POSTROUTING - s 172.7.21.0/24 !- o docker0 - j化妆舞会 ----------------------------------------------------------------------------------------------- 4、插入一条新的记录(排除对172.7.0.0/16网络访问的伪装) (root@test-nodes1 ~) # iptables - t nat -我POSTROUTING - s 172.7.21.0/24 !- d 172.7.0.0/16 !- o docker0 - j化妆舞会 ----------------------------------------------------------------------------------------------- 5、查看是否生效 (root@test-nodes1 ~) # iptables-save | grep - i postrouting) :POSTROUTING接受[13:814] :KUBE-POSTROUTING -(0时) ——POSTROUTING - s 172.7.21.0/24 !- d 172.7.0.0/16 !- o docker0 - j化妆舞会 ——POSTROUTING - m评论,评论“kubernetes POSTROUTING rules"- j KUBE-POSTROUTING ——KUBE-POSTROUTING - m评论,评论“kubernetes服务交通要求SNAT"- m马克,马克0 x4000/0x4000 - j化妆舞会 ----------------------------------------------------------------------------------------------- 6,删除iptables上所有拒绝拒绝规则 (root@test-nodes1 ~) # iptables-save | grep -我拒绝 ——输入- j拒绝——reject-with icmp-host-prohibited ——向前- j拒绝——reject-with icmp-host-prohibited (root@test-nodes1 ~) # iptables - d - t过滤器输入- j拒绝——reject-with icmp-host-prohibited (root@test-nodes1 ~) # iptables - t向前过滤器- d - j拒绝——reject-with icmp-host-prohibited (root@test-nodes1 ~) # iptables-save | grep -我拒绝 ----------------------------------------------------------------------------------------------- 7日,保存iptables规则 (root@test-nodes1 ~) # iptables-save比;/etc/sysconfig/iptables 代码>
三、验证结果
1,通过容器172.7.21.2访问172.7.22.2
2,查看172.7.22.2的容器日志
备注:test-nodes需要有相同的操作
上文描述的就是SNAT的使用以及访问nginx容器报错的解决问题,具体使用情况还需要大家自己动手实验使用过才能领会。如果想了解更多相关内容,欢迎关注行业资讯频道!