Доступ к приложению в kubernetes с помощью nodeport

Уважаемые все, я развернул пример службы, такой как эта:

 kubectl get svc
NAME          TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes    ClusterIP   10.233.0.1     <none>        443/TCP          1d
mynodejsapp   NodePort    10.233.2.225   <none>        3000:31209/TCP   43s

могу я спросить, как мне получить доступ к приложению mynodejsapp на IP-адресе кластера?

Когда я сделал get nodes -o wide, это то, что я увидел ниже:

$ kubectl get nodes -o wide
NAME                    STATUS    ROLES     AGE       VERSION            EXTERNAL-IP   OS-IMAGE                  KERNEL-VERSION                   CONTAINER-RUNTIME
controlplane-node-001   Ready     master    2d        v1.9.1+2.1.8.el7   <none>        Oracle Linux Server 7.2   4.1.12-112.14.13.el7uek.x86_64   docker://17.3.1
controlplane-node-002   Ready     master    2d        v1.9.1+2.1.8.el7   <none>        Oracle Linux Server 7.2   4.1.12-112.14.13.el7uek.x86_64   docker://17.3.1
controlplane-node-003   Ready     master    2d        v1.9.1+2.1.8.el7   <none>        Oracle Linux Server 7.2   4.1.12-112.14.13.el7uek.x86_64   docker://17.3.1
default-node-001        Ready     node      2d        v1.9.1+2.1.8.el7   <none>        Oracle Linux Server 7.2   4.1.12-112.14.13.el7uek.x86_64   docker://17.3.1
default-node-002        Ready     node      2d        v1.9.1+2.1.8.el7   <none>        Oracle Linux Server 7.2   4.1.12-112.14.13.el7uek.x86_64   docker://17.3.1

Любая помощь. Спасибо.


person Adam    schedule 07.09.2018    source источник
comment
Возможный дубликат В чем разница между ClusterIP, NodePort и LoadBalancer типы сервисов в Kubernetes?   -  person David Maze    schedule 07.09.2018


Ответы (1)


могу я спросить, как мне получить доступ к приложению mynodejsapp на IP-адресе кластера?

Теперь, чтобы получить прямой ответ на ваш вопрос относительно вашего обзора услуг:

  • Чтобы получить доступ к службе mynodejsapp из вне кластера, вам необходимо указать IP-адрес любого из nodes на порту 31209kube-proxy направит его на службу mynodejsapp для вас).
  • Чтобы получить доступ к службе mynodejsapp из внутри кластера, то есть из другого модуля, работающего в том же кластере, вам нужно указать IP-адрес кластера 10.233.2.225:3000 (или, альтернативно, при запуске kube-dns вы можете напрямую использовать имя службы mynodejsapp:3000)

Как подробно описано в официальной документации, clusterIP привязан к сервису. , а в свою очередь разрешается через kube-dns от имени службы до clusterIP. Короче говоря, вы можете использовать clusterIP только из модулей, работающих в указанном кластере (так же, как и служба).

Что касается предоставления услуг извне через NodePort, вы также можете найти дополнительную информацию в официальная документация

person Const    schedule 07.09.2018
comment
Все мои узлы не имеют общедоступного IP-адреса. Следовательно, я предполагаю, что я должен делать это внутри кластера? Документацию посмотрю - person Adam; 07.09.2018
comment
Даже не твой хозяин? Как получить к ним доступ? - person Const; 07.09.2018
comment
каков результат kubectl get nodes -o wide в вашем случае? Можете ли вы обновить вопрос с ним? - person Const; 07.09.2018
comment
все внешние IP-адреса пусты для всех моих узлов и мастеров - person Adam; 08.09.2018
comment
хм... можете ли вы обновить вопрос с выводом kubectl get nodes -o wide? - person Const; 08.09.2018