
У меня есть кластер из 4 узлов со службой NodePort, доступной с порта 80 по порт 30871. Я могу получить доступ к службе на каждом узле, используя имя хоста этого узла, например:
curl http://hostname1:30871 на узле hostname1
работает так, как и ожидалось. То же самое для
curl http://hostname2:30871 на узле hostname2
Я бы ожидал, что смогу получить доступ к сервису с других узлов. Однако, запуск
curl http://имя_хоста1:30871
из узла hostname2 выдает ошибку превышения времени ожидания соединения. То же самое, когда я использую IP. Я использую flannel для работы в сети, и он находится на кластере CentOS на голом железе, Kubernetes 1.20.
Я могу получить доступ к сервису через ClusterIP с любого из узлов. Так что
curl http://IP-адрес кластера:80
Работает отлично для всех узлов.
Все брандмауэры открыты и проверены на работоспособность. То же самое происходит с машинами за пределами кластера. Опять же, я ожидал бы, что смогу получить доступ к http://hostname1:30871 из любого места, но возникает та же проблема с тайм-аутом.