Kubernetes-flannelは容器をpingできません
8549 ワード
flannelサービスはdockerとpodアドレスに割り当てる仮想ネットワークを生成します.したがってdockerが存在するシンクホストとk 8 sで生成されたpodのアドレスは互いにpingすることができる.ネットワークが通じないとpod間の通信に影響します.
1.検査
1.1ホスト間で、master node 1 node 2 flannleアドレスが通じているかどうかを確認します.
ホスト間で通信状況を確認する
Node 1のdocker 0アドレスは10.0.58.1です
1.2ホストとpod間の通信のチェック
任意のpodアドレスを選択し、ping
2.ping podが通じない
2.1 flanneldが起動しているかどうかを確認する
flanneldサービスを起動しない場合、ifconfigコマンドを実行してflannel仮想ネットワークがない場合、
2.2 master etcdでpodサブネットの割り当て状況を検査する
2.3経路検査
それぞれマスターとnodeでrouteをチェックし、flannelサブネットがあれば問題ありません
存在しない場合は、ルートを入力します.
ルーティングを追加したら、flannalサービスを再起動します.
2.4仮転送を記入する
masterノードとnodeノード
2.5 iptablesローテーション転送
masterノードとnodeノード
————Blueicex 2020/05/15 16:15 [email protected]
1.検査
1.1ホスト間で、master node 1 node 2 flannleアドレスが通じているかどうかを確認します.
ホスト間で通信状況を確認する
[root@master ~]# ping node1
PING node1 (192.168.0.72) 56(84) bytes of data.
64 bytes from node1 (192.168.0.72): icmp_seq=1 ttl=64 time=0.851 ms
64 bytes from node1 (192.168.0.72): icmp_seq=2 ttl=64 time=0.420 ms
Node 1のdocker 0アドレスは10.0.58.1です
[root@node1 ~]# ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1472
inet 10.0.58.1 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::42:55ff:fe9d:b2da prefixlen 64 scopeid 0x20<link>
ether 02:42:55:9d:b2:da txqueuelen 0 (Ethernet)
RX packets 54 bytes 3784 (3.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 22 bytes 1916 (1.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
flannel0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1472
inet 10.0.58.0 netmask 255.255.0.0 destination 10.0.58.0
inet6 fe80::43d1:10c7:a30b:bf88 prefixlen 64 scopeid 0x20<link>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
RX packets 15 bytes 1260 (1.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15 bytes 1152 (1.1 KiB)
[root@master ~]# ping 10.0.58.1
PING 10.0.58.1 (10.0.58.1) 56(84) bytes of data.
64 bytes from 10.0.58.1: icmp_seq=1 ttl=62 time=1.04 ms
64 bytes from 10.0.58.1: icmp_seq=2 ttl=62 time=0.627 ms
1.2ホストとpod間の通信のチェック
[root@master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
httpdrc-2zv0t 1/1 Running 0 19m 10.0.82.3 node2
httpdrc-4k1bv 1/1 Running 0 19m 10.0.82.2 node2
httpdrc-4zrgv 1/1 Running 0 19m 10.0.58.2 node1
任意のpodアドレスを選択し、ping
[root@master ~]# ping 10.0.82.3
PING 10.0.82.3 (10.0.82.3) 56(84) bytes of data.
64 bytes from 10.0.82.3: icmp_seq=1 ttl=61 time=3.49 ms
64 bytes from 10.0.82.3: icmp_seq=2 ttl=61 time=0.475 ms
2.ping podが通じない
2.1 flanneldが起動しているかどうかを確認する
flanneldサービスを起動しない場合、ifconfigコマンドを実行してflannel仮想ネットワークがない場合、
[root@master ~]# systemctl status flanneld.service
● flanneld.service - Flanneld overlay address etcd agent
Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2020-05-15 15:19:24 CST; 44min ago
Main PID: 10049 (flanneld)
CGroup: /system.slice/flanneld.service
└─10049 /usr/bin/flanneld -etcd-endpoints=http://master:2379 -etcd-prefix=/coreos.com/network -iface=en
2.2 master etcdでpodサブネットの割り当て状況を検査する
[root@master ~]# etcdctl ls /coreos.com/network/subnets
/coreos.com/network/subnets/10.0.21.0-24
/coreos.com/network/subnets/10.0.82.0-24
/coreos.com/network/subnets/10.0.58.0-24
2.3経路検査
それぞれマスターとnodeでrouteをチェックし、flannelサブネットがあれば問題ありません
[root@master ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 0.0.0.0 255.255.0.0 U 0 0 0 flannel0
10.0.21.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
[root@node1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 0.0.0.0 255.255.0.0 U 0 0 0 flannel0
10.0.58.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
存在しない場合は、ルートを入力します.
[root@node1 ~]# route add -net 10.0.0.0 netmask 255.255.0.0 dev flannel0
ルーティングを追加したら、flannalサービスを再起動します.
2.4仮転送を記入する
masterノードとnodeノード
[root@node1 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
2.5 iptablesローテーション転送
masterノードとnodeノード
[root@node1 ~]#iptables -P FORWARD ACCEPT
————Blueicex 2020/05/15 16:15 [email protected]