2016-11-15 4 views
0

У меня есть служба nginx, открытая через NodePort. Согласно документации, я должен теперь воспользоваться услугой по $NODE_IP:$NODE_PORT для всех моих рабочих IP-адресов K8. Тем не менее, я могу получить доступ к сервису через curl только на узле, на котором размещен настоящий модуль nginx. Любая идея почему?Kubernetes - сервис, открытый через NodePort, недоступен для всех узлов

Я проверил с помощью netstat, что kube-proxy прослушивает $ NODE_PORT на всех хостах. Так или иначе, запрос не пересылается фактическому контейнеру с помощью kube-proxy.

+0

Вы всегда можете связаться со службой servicename.namespace.svc.cluster.local, если вы используете kube dns. –

+0

@MattRickard. В этом случае я ищу, чтобы выставить службу за пределами K8 для других служб, не поддерживающих K8 потреблять. – jeffreyveon

ответ

0

Это оказалось проблемой для группы безопасности, связанной с работниками. Я открыл только порты в --service-node-port-range. Этого было недостаточно, потому что я развертывал nginx на порту 80, а kube-proxy пытался перенаправить запрос на IP-адрес порта на порт 80, но был заблокирован.

+0

Привет, Джеффри, я столкнулся с аналогичной проблемой в https://stackoverflow.com/questions/44785402/configure-ingress-kubernetes-accessible-only-on-single-node, не могли бы вы предложить некоторые предложения? – Vikram

Смежные вопросы