Kubernetes: нельзя отправлять ping-пакеты между узлами

В настоящее время я следую этому руководству (за исключением того, что я использую AWS и ничего не могу с этим поделать).
В настоящее время я нахожусь на 10-й шаг и, похоже, возникают проблемы при попытке связаться с модулями от одного исполнителя к другому.

Вот журнал двух рабочих, который поможет подчеркнуть проблему:

worker-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#

worker-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#

Модули развертываются правильно (я пробовал создать 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

Спасибо за понимание

РЕДАКТИРОВАТЬ: добавление информации для работников

worker-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

worker-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

person Talanor    schedule 30.07.2018    source источник
comment
Можете ли вы перечислить маршруты, которые у вас есть на 10.240.1.1?   -  person VASャ    schedule 01.08.2018


Ответы (2)


У ваших узлов отсутствуют маршруты к подсети других узлов.

Чтобы он заработал, вам нужно либо добавить статические маршруты на рабочие узлы, либо добавить маршруты ко всем подсетям подов на шлюзе по умолчанию 10.240.1.1

Первый случай:

Выполните на узле 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

В этом случае трафик будет идти напрямую от одного рабочего узла к другому, но если ваш кластер растет, вы должны соответственно изменить таблицу маршрутов для всех рабочих. Однако эти подсети не будут доступны с других хостов VPC без добавления IP-маршрутов к облачному маршрутизатору.

Второй случай:

На маршрутизаторе по умолчанию (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

В этом случае трафик будет маршрутизироваться маршрутизатором по умолчанию, и если вы добавите новые узлы в свой кластер, вам нужно будет обновить только одну таблицу маршрутов на маршрутизаторе по умолчанию.
Это решение используется в Часть маршрутов из «Трудный путь Кубернетов».

Эта статья может быть полезна для создания маршрутов. с помощью AWS CLI.

person VASャ    schedule 02.08.2018

Спасибо @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) .."

Flannel: сетевая структура для контейнеров

person melvinrmc    schedule 26.01.2020