Рейтинг:0

Связь NodePort между узлами не работает

флаг kr

У меня есть кластер из 4 узлов со службой NodePort, доступной с порта 80 на порт 30871. Я могу получить доступ к службе на каждом узле с именем хоста этого узла, например:

curl http://hostname1:30871 на узле hostname1

работает так, как вы ожидаете. То же самое для

curl http://hostname2:30871 на узле hostname2

Я ожидаю, что смогу получить доступ к сервису с других узлов. Тем не менее, бег

завиток http://hostname1:30871

с узла hostname2 приводит к ошибке тайм-аута соединения. То же самое, когда я использую IP. Я использую фланель для работы в сети, и это на голом железе CentOS Cluster, Kubernetes 1.20.

Я могу получить доступ к сервису через ClusterIP с любого из узлов. Так

завиток http://clusterIP-адрес:80

Работает как шарм для всех узлов.

Все брандмауэры открыты и проверены на работоспособность. То же самое происходит и с машинами вне кластера.Опять же, я ожидаю, что смогу получить доступ к http://hostname1:30871 из любого места, но возникает та же проблема с тайм-аутом.

SYN avatar
флаг hk
SYN
Это как-то странно... На этом этапе я бы установил tcpdump и попытался выяснить, где теряется это отсутствующее соединение. В последнее время (flannel+iptables) я наблюдал странные вещи с правилами iptables: не стесняйтесь сравнивать правила от одного узла к другому.
mxcolin avatar
флаг kr
Это странно, я протестировал брандмауэр и открытые порты с помощью nc на одних и тех же портах, и он работает так, как вы ожидаете, что очень странно.
SYN avatar
флаг hk
SYN
Используйте tcpdump на исходном и целевом узлах, посмотрите на основной сетевой интерфейс/где прослушиваются порты узлов, отфильтруйте порт назначения: видите ли вы, что эти соединения покидают исходный узел? Доходит ли он до узла назначения? Обновите свой пост с этими tcpdumps, дайте нам знать, что вы видите.
mxcolin avatar
флаг kr
Вот что я вижу, пока не истечет время `17:15:37.090460 IP 10.120.112.226.57008 > 10.120.112.210.80: флаги [S], seq 4047977385, win 29200, параметры [mss 1460,sackOK,TS val 281286877 ecr 0],nop,wscale 7 0`
mxcolin avatar
флаг kr
Я изменил k8s, чтобы разрешить совместное использование порта 80, но такое же поведение происходит для любого порта.Все порты проверены и между машинами и работают.
SYN avatar
флаг hk
SYN
Что это такое? исходный узел, целевой узел? Вы запускаете tcpdump на каких-либо интерфейсах? Пожалуйста, ИЗМЕНИТЕ свой первоначальный пост с выводом tcpdump на сетевых интерфейсах НЕ-SDN (мы не увидим этот порт 80) и отфильтруйте порт НАЗНАЧЕНИЯ (к которому вы подключаетесь: ваш порт NodePort). Покажите нам узлы SOURCE и DESTINATION.
SYN avatar
флаг hk
SYN
Это «10.120.112.226.57008 > 10.120.112.210.80» должно оставаться в пределах вашего SDN. У ваших узлов должен быть маршрут (`ip r`), отправляющий эту подсеть через ваш SDN. Если вы не скажете нам, где вы это видели: это бесполезно.
mxcolin avatar
флаг kr
Я не очень хорошо знаком с tcpdump, пытаюсь научиться. Так будет ли это: `sudo tcpdump --интерфейс -nn хост `на хосте и `sudo tcpdump --interface -nn хост и порт 30871` на пункте назначения?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.