Большая часть Kubernetes — это сетевые возможности, мы получаем возможность внутренней маршрутизации трафика к соседним модулям, разделения рабочих нагрузок на несколько узлов и даже открытия сети для внешнего мира.

Давайте подробнее рассмотрим некоторые элементы соответствия сети.


Как происходит настройка сети

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

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


Услуги

Большая часть сети в Kubernetes — это сервисы, которые представляют собой абстрактный способ предоставления доступа к приложению, работающему в наборе модулей. Kubernetes под капотом назначит каждому из них уникальные IP-адреса, но сделает их доступными с одним единственным DNS-именем. Он также может использовать это поведение для балансировки нагрузки между различными модулями.

Это сводится к тому, что мы, как конечный пользователь приложения, можем вызвать my-service в качестве конечной точки любого протокола, который мы хотим.
И Kubernetes будет знать, что нужно вызывать правильный модуль, у которого потенциально может быть другой внутренний номер порта.


Вход

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

Чтобы исправить это, мы можем использовать Ingress, объект API, который управляет внешним доступом к службе внутри вашего кластера. (Обычно через HTTP(S)).

При определении входных ресурсов мы можем определить набор правил о том, что будет видеть внешний мир (конечная точка) и к какой службе этот маршрут будет направлен внутри Kubernetes.


Нюансы

Когда вы погружаетесь в сетевое взаимодействие в Kubernetes, вы можете использовать большое количество множества вариантов.

Я бы лично посоветовал вам придерживаться голого миниума, как описано в этой статье, и расширять отсюда, какой вариант использования вам придется изучить.

Как всегда документация по кубернету на этом предоставляет огромное количество справочной информации. (которую я пытался абстрагировать для новичков).


Спасибо за чтение, и давайте общаться!

Спасибо за чтение моего блога. Не стесняйтесь подписаться на мою рассылку по электронной почте и подключиться к Фейсбук или же Твиттер