В кластере Kubernetes внешний ip не выставляется как <nodes> - PullRequest
0 голосов
/ 17 ноября 2018

Вот мой код service.yaml:

kind: Service
apiVersion: v1
metadata:
  name: login
spec:
  selector:
    app: login
  ports:
  - protocol: TCP
    name: http
    port: 5555
    targetPort: login-http
  type: NodePort

Я написал тип сервиса как

type: NodePort

но когда я нажимаю на команду, как показано ниже, внешний ip не отображается как 'узлы':

'kubectl get svc'

здесь вывод:

NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.100.0.1     <none>        443/TCP          7h
login        NodePort    10.100.70.98   <none>        5555:32436/TCP   5m

пожалуйста, помогите мне понять ошибку.

1 Ответ

0 голосов
/ 17 ноября 2018

В вашем сервисе нет ничего плохого, вы должны иметь доступ к нему, используя <your_vm_ip>:32436.

NodePort, как следует из названия, открывает определенный порт на всех узлах (виртуальных машинах) илюбой трафик, отправляемый на этот порт, перенаправляется в сервис.Итак, на вашем узле порт 32436 открыт и получит весь внешний трафик на этом порту и перенаправит его в службу входа в систему.

РЕДАКТИРОВАТЬ:

nodePort - это порт, который клиент внекластер будет "видеть".nodePort открывается на каждом узле вашего кластера через kube-proxy.С помощью iptables magic Kubernetes (k8s) затем направляет трафик с этого порта на соответствующий модуль службы (даже если этот модуль работает на совершенно другом узле).

nodePort уникален, поэтому 2 разные службы не могут иметь одинаковыеназначен nodePort.После объявления мастер k8s резервирует этот nodePort для этой службы.Затем узел nodePort открывается на КАЖДОМ узле (главном и рабочем), а также на узлах, на которых не запущен модуль этой службы - i8s magic заботится о маршрутизации.Таким образом, вы можете сделать запрос на обслуживание из-за пределов вашего кластера k8s на любой узел на nodePort, не беспокоясь о том, запланирован ли там модуль или нет.

См. Следующую статью, в которой показаны различные способы предоставления ваших услуг:

https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...