# Сеть в кластере

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->
Сеть — важная часть Kubernetes, но понять, как именно она работает, бывает непросто. Существует 4 уникальных сетевых проблемы, которые требуют внимнаия:

1. Высокосвязанные коммуникации между контейнерами: решается организацией коммуникации между <a class='glossary-tooltip' title='Самый маленький и простой объект в Kubernetes. Под — это набор запущенных контейнеров в кластере.' data-bs-toggle='tooltip' data-bs-placement='top' href='/ru/docs/concepts/workloads/pods/pod-overview/' target='_blank' aria-label='Pod&#39;ами'>Pod&#39;ами</a> и `localhost`.
2. Связь Pod'ов друг с другом (Pod-to-Pod): именно ей уделяется основное внимание в этом документе.
3. Связь Pod'ов с сервисами (Pod-to-Service): подробнее об этом можно почитать в разделе [Сервисы](/docs/concepts/services-networking/service/).
4. Связь внешних систем с сервисами (External-to-Service): информация о данных коммуникациях также приведена в разделе [Сервисы](/docs/concepts/services-networking/service/).

<!-- body -->

Суть Kubernetes — в организации совместного использования хостов приложениями. Обычно совместное использование подразумевает, что два приложения не могут задействовать одни и те же порты. Создать единую глобальную схему использования портов очень сложно. В результате пользователи рискуют получить сложноустранимые проблемы на уровне кластера.

Динамическое распределение портов значительно усложняет систему: каждое приложение должно уметь принимать порты в виде флагов-параметров, серверы API должны уметь вставлять динамические номера портов в конфигурационные блоки, сервисы должны знать, как найти друг друга и т.п. Вместо того чтобы пытаться разобраться со всем этим, Kubernetes использует иной подход.

Больше узнать о сетевой модели Kubernetes можно в [соответствующем разделе](/docs/concepts/services-networking/).

## Реализация сетевой модели Kubernetes

Сетевая модель реализуется средой исполнения для контейнеров на узлах. Наиболее распространенные среды исполнения используют плагины [Container Network Interface](https://github.com/containernetworking/cni) (CNI) для управления сетью и обеспечения безопаснояти коммуникаций. Существует множество различных плагинов CNI от разных разработчиков. Некоторые из них предлагают только базовые функции, такие как добавление и удаление сетевых интерфейсов. Другие позволяют проводить интеграцию с различныеми системами оркестрации контейнеров, поддерживают запуск нескольких CNI-плагинов/расширенные функции IPAM и т.д.

Неполный список сетевых аддонов, поддерживаемых Kubernetes, приведен [на соответствующей странице в разделе "Сеть и сетевая политика"](/docs/concepts/cluster-administration/addons/#networking-and-network-policy).

## Что дальше

Подробнее о разработке сетевой модели, принципах, лежащих в ее основе, и некоторых планах на будущее можно узнать из соответствующего [документа](https://git.k8s.io/design-proposals-archive/network/networking.md).
