![](/img/trans.png)
[英]Kubernetes Multus: No macvlan connectivity between pods on different nodes (can't ping)
[英]Kubernetes: Can't ping pods across nodes
我目前正在關注本教程(除了我在 AWS 上,我對此無能為力)。
我目前處於第10 步,在嘗試將 Pod 從一名工人帶到另一名工人時似乎遇到了問題。
這是來自兩名工人的日志,有助於強調問題:
工人-0 :
root@worker-0:/home/admin# ip addr show eth0 | grep 'inet '
inet 10.240.1.230/24 brd 10.240.1.255 scope global eth0
root@worker-0:/home/admin# traceroute 10.200.1.10 -n -i cnio0 -I -m 5
traceroute to 10.200.1.10 (10.200.1.10), 5 hops max, 60 byte packets
1 10.200.1.10 0.135 ms 0.079 ms 0.073 ms
root@worker-0:/home/admin# ping 10.240.1.232
PING 10.240.1.232 (10.240.1.232) 56(84) bytes of data.
64 bytes from 10.240.1.232: icmp_seq=1 ttl=64 time=0.151 ms
^C
--- 10.240.1.232 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.151/0.151/0.151/0.000 ms
root@worker-0:/home/admin# traceroute 10.200.3.5 -g 10.240.1.232 -n -i eth0 -I -m 5
traceroute to 10.200.3.5 (10.200.3.5), 5 hops max, 72 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
root@worker-0:/home/admin#
工人 2 :
root@worker-2:/home/admin# ip addr show eth0 | grep 'inet '
inet 10.240.1.232/24 brd 10.240.1.255 scope global eth0
root@worker-2:/home/admin# traceroute 10.200.3.5 -n -i cnio0 -I -m 5
traceroute to 10.200.3.5 (10.200.3.5), 5 hops max, 60 byte packets
1 10.200.3.5 0.140 ms 0.077 ms 0.072 ms
root@worker-2:/home/admin# ping 10.200.3.5
PING 10.200.3.5 (10.200.3.5) 56(84) bytes of data.
64 bytes from 10.200.3.5: icmp_seq=1 ttl=64 time=0.059 ms
64 bytes from 10.200.3.5: icmp_seq=2 ttl=64 time=0.047 ms
^C
--- 10.200.3.5 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1017ms
rtt min/avg/max/mdev = 0.047/0.053/0.059/0.006 ms
root@worker-2:/home/admin#
Pod 部署正確(我嘗試生成 11 個 busybox 實例,結果如下:
admin@ip-10-240-1-250:~$ kubectl get pods
busybox-68654f944b-vjs2s 1/1 Running 69 2d
busybox0-7665ddff5d-2856g 1/1 Running 69 2d
busybox1-f9585ffdb-tg2lj 1/1 Running 68 2d
busybox2-78c5d7bdb6-fhfdc 1/1 Running 68 2d
busybox3-74fd4b4f98-pp4kz 1/1 Running 69 2d
busybox4-55d568f8c4-q9hk9 1/1 Running 68 2d
busybox5-69f77b4fdb-d7jf2 1/1 Running 68 2d
busybox6-b5b869f4-2vnkz 1/1 Running 69 2d
busybox7-7df7958c4b-4bxzx 0/1 Completed 68 2d
busybox8-6d78f4f5d6-cvfx7 1/1 Running 69 2d
busybox9-86d49fdf4-75ddn 1/1 Running 68 2d
謝謝你的見解
編輯:為工人添加信息
工人-0 :
root@worker-0:/home/admin# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
link/ether 02:2b:ed:df:b7:58 brd ff:ff:ff:ff:ff:ff
inet 10.240.1.230/24 brd 10.240.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::2b:edff:fedf:b758/64 scope link
valid_lft forever preferred_lft forever
root@worker-0:/home/admin# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.240.1.1 0.0.0.0 UG 0 0 0 eth0
10.200.1.0 0.0.0.0 255.255.255.0 U 0 0 0 cnio0
10.240.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
工人 2 :
root@worker-2:/home/admin# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
link/ether 02:b0:2b:67:73:9e brd ff:ff:ff:ff:ff:ff
inet 10.240.1.232/24 brd 10.240.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::b0:2bff:fe67:739e/64 scope link
valid_lft forever preferred_lft forever
root@worker-2:/home/admin# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.240.1.1 0.0.0.0 UG 0 0 0 eth0
10.200.3.0 0.0.0.0 255.255.255.0 U 0 0 0 cnio0
10.240.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
您的節點缺少通往其他節點 Pod 子網的路由。
要使其正常工作,您需要在工作節點上添加靜態路由或將路由添加到默認網關10.240.1.1
上的所有 Pod 的子網
第一種情況:
在worker1節點上運行:
route add -net 10.200.3.0/24 netmask 255.255.255.0 gw 10.240.1.232
在worker2節點上運行:
route add -net 10.200.1.0/24 netmask 255.255.255.0 gw 10.240.1.230
在這種情況下,流量將直接從一個工作節點傳輸到另一個工作節點,但是如果您的集群增長,您必須相應地更改所有工作節點上的路由表。 但是,如果不向雲路由器添加 IP 路由,則其他 VPC 主機將無法訪問這些子網。
第二種情況:
在默認路由器( 10.240.1.1
) 上:
route add -net 10.200.3.0/24 netmask 255.255.255.0 gw 10.240.1.232
route add -net 10.200.1.0/24 netmask 255.255.255.0 gw 10.240.1.230
在這種情況下,流量將通過默認路由器路由,如果您向集群添加新節點,則只需更新默認路由器上的一個路由表。
該解決方案用於“Kubernetes the hard way”的路由部分。
本文將有助於使用 AWS CLI 創建路由。
謝謝@VAS,很有幫助,
# edit /etc/hosts
192.168.2.150 master master.localdomain
192.168.2.151 node1 node1.localdomain
192.168.2.152 node2 node2.localdomain
...
# then add routes
$ route add -net 10.244.1.0/24 gw node1
$ route add -net 10.244.2.0/24 gw node2
...
那是因為
“..flannel 為每個主機提供一個 IP 子網(默認情況下為 /24)..”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.