Докер для Mac(Edge) - Кубернетес - LoadBalancer

Это так круто, что у нас есть LoadBalancer в Docker для Mac.

У меня вопрос по поводу созданных портов:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    run: nginx
spec:
  ports:
    port: 9999
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Это дает мне (kubectl get service):

nginx        LoadBalancer   10.96.128.253   localhost     9999:32455/TCP   2s

Что такое 32455?

Спасибо

1 ответ

Решение

32455 - это ваш nodePort. Kubernetes автоматически назначает уникальный nodePort для любой службы, доступной за пределами кластера (включая службы типа LoadBalancer. Вы можете сами указать их также в той же конфигурации, что и вы.

Что касается Docker для Mac, в частности, Kubernetes создает сервис, который прослушивает localhost:9999. Это "выход", который создает kubernetes, поскольку у вас фактически нет балансировщика нагрузки, он по сути имитирует его. Помимо "балансировки / выхода нагрузки", он по-прежнему ведет себя так же, как и при работе - то есть Kubernes назначает nodePort для службы. Вы curl localhost:32455вы, скорее всего, получите такой же ответ, как если бы вы имели curl localhost:9999,

Другие вопросы по тегам