一、Flannel之SNAT規(guī)劃優(yōu)化作用
解決兩宿主機容器之間的透明訪問,如不進行優(yōu)化,容器之間的訪問,日志記錄為宿主機的IP地址。
1、宿主機訪問172.7.22.2的nginx容器情況
站在用戶的角度思考問題,與客戶深入溝通,找到八宿網站設計與八宿網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網站、網站設計、
外貿營銷網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務覆蓋八宿地區(qū)。
2、172.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 install iptables-services
[root@test-nodes1 ~]# systemctl start iptables
[root@test-nodes1 ~]# systemctl enable iptables
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
-----------------------------------------------------------------------------------------------
2、把以下iptable記錄的偽裝轉向刪除
[root@test-nodes1 ~]# iptables-save |grep -i postrouting
:POSTROUTING ACCEPT [68:4098]
:KUBE-POSTROUTING - [0:0]
-A POSTROUTING -m comment --comment "kubernetes postrouting rules" -j KUBE-POSTROUTING
-A POSTROUTING -s 172.7.21.0/24 ! -o docker0 -j MASQUERADE #刪除此條
-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -m mark --mark 0x4000/0x4000 -j MASQUERADE
-----------------------------------------------------------------------------------------------
3、刪除該記錄
[root@test-nodes1 ~]# iptables -t nat -D POSTROUTING -s 172.7.21.0/24 ! -o docker0 -j MASQUERADE
-----------------------------------------------------------------------------------------------
4、插入一條新的記錄(排除對172.7.0.0/16網絡訪問的偽裝)
[root@test-nodes1 ~]# iptables -t nat -I POSTROUTING -s 172.7.21.0/24 ! -d 172.7.0.0/16 ! -o docker0 -j MASQUERADE
-----------------------------------------------------------------------------------------------
5、查看是否生效
[root@test-nodes1 ~]# iptables-save |grep -i postrouting
:POSTROUTING ACCEPT [13:814]
:KUBE-POSTROUTING - [0:0]
-A POSTROUTING -s 172.7.21.0/24 ! -d 172.7.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -m comment --comment "kubernetes postrouting rules" -j KUBE-POSTROUTING
-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -m mark --mark 0x4000/0x4000 -j MASQUERADE
-----------------------------------------------------------------------------------------------
6、刪除iptables上所有reject拒絕規(guī)則
[root@test-nodes1 ~]# iptables-save | grep -i reject
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
[root@test-nodes1 ~]# iptables -t filter -D INPUT -j REJECT --reject-with icmp-host-prohibited
[root@test-nodes1 ~]# iptables -t filter -D FORWARD -j REJECT --reject-with icmp-host-prohibited
[root@test-nodes1 ~]# iptables-save | grep -i reject
-----------------------------------------------------------------------------------------------
7、保存iptables規(guī)則
[root@test-nodes1 ~]# iptables-save > /etc/sysconfig/iptables
三、驗證結果
1、通過容器172.7.21.2訪問172.7.22.2
2、查看172.7.22.2的容器日志
備注:test-nodes需要有相同的操作
分享題目:K8S之Flannel之SNAT規(guī)劃優(yōu)化-創(chuàng)新互聯(lián)
新聞來源:
http://weahome.cn/article/dpggip.html