Kubernetes: тот же узел, но разные IP - PullRequest
0 голосов
/ 20 апреля 2020

Я создал кластер K8s на GCP и развернул приложение.

Затем я масштабировал его:

масштабирование в масштабе kubectl hello-world-rest-api - replicas = 3

Теперь, когда я запускаю 'kubectl get pods', я вижу три модуля. Их значение NODE одинаково. Я понимаю, это означает, что все они развернуты на одной машине. Но я заметил, что значение IP для всех трех разное.

Если NODE одинаково, то почему IP отличается?

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

В кластере k8s есть несколько сетей. Модули находятся в сети модулей, поэтому каждый модуль, развернутый в узлах кластера k8s, может видеть друг друга, как если бы они были независимыми узлами в сети. Адресное пространство модуля отличается от адресного пространства узла. Таким образом, каждый модуль, работающий на узле, получает уникальный адрес из сети модуля, который также отличается от сети узла. Компоненты k8s, работающие на каждом узле, выполняют преобразование адресов.

0 голосов
/ 20 апреля 2020

Из сетевой модели kubernetes

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

Существуют IP-адреса Kubernetes. в области Pod - контейнеры внутри Pod совместно используют свои сетевые пространства имен - включая их IP-адрес. Это означает, что все контейнеры внутри Pod могут достигать портов друг друга на localhost. Это также означает, что контейнеры внутри Pod должны координировать использование порта, но это ничем не отличается от процессов в VM. Это называется моделью «IP-per-pod»

https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model/

...