Согласно документам Kubernetes :
Если вы установите поле типа в NodePort, мастер Kubernetes будет выделять порт из диапазона, указанного в флаге --service-node-port-range (по умолчанию: 30000-32767), и каждый узел будет проксировать этот порт ( один и тот же номер порта на каждом узле) в вашем сервисе.
Таким образом, Kubernetes гарантирует, что один и тот же номер порта будет открыт на всех узлах, на которых размещается эта служба. В этом случае внешний IP-адрес - это IP-адрес узла.
Принимая во внимание, что Kubernetes говорит это о Внешние IP-адреса :
Если существуют внешние IP-адреса, которые маршрутизируют к одному или нескольким узлам кластера, службы Kubernetes могут быть выставлены на этих внешних IP-адресах. Трафик, который поступает в кластер с внешним IP-адресом (в качестве IP-адреса назначения) через служебный порт, будет направляться на одну из конечных точек службы. externalIPs
не управляются Kubernetes и находятся в ведении администратора кластера.
Недостатком сервиса типа NodePort
является то, что он сам по себе не масштабируемый подход и не может быть обнаружен сервисом.
Если вы хотите предоставить сервис через один IP-адрес потребителям за пределами вашего кластера Kubernetes, вы можете рассмотреть тип сервиса LoadBalancer
, если у вас есть общедоступное облако или гибридное облако Kubernetes. развертывание, или вы можете посмотреть Ingress
, если у вас есть локальное развертывание Kubernetes.