Докер для 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
,