Pull to refresh
70.83
Слёрм
Учебный центр для тех, кто работает в IT

Что происходит, когда вы создаёте Pod в Kubernetes?

Level of difficultyEasy
Reading time2 min
Views13K
Original author: Daniele Polencic

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

Начнем с очевидного: kubectl отправляет определение YAML на сервер API.

На этом этапе kubectl:

  • Обнаруживает эндпоинты API с помощью OpenAPI (Swagger).

  • Согласовывает версию ресурса.

  • Проверяет YAML.

  • Выдает запрос.

Источник

Когда запрос попадает к API, он проходит следующие этапы:

  • Аутентификация и авторизация.

  • Контроллеры допуска.

На последнем этапе он сохраняется в etcd.

Источник

После этого pod добавляется в очередь планировщика. Планировщик фильтрует и оценивает узлы, чтобы найти лучший. И, наконец, привязывает pod к ноде. Привязка записывается в etcd.

Источник

На данный момент pod существует только в etcd в виде записи. Инфраструктура еще не создала ни одного контейнера. Здесь за дело берется kubelet.

Источник

Kubelet извлекает Pod definition и приступает к делегированию:

  1. Создание сети на CNI (например, Cilium).

  2. Создание контейнера - CRI (например, containerd).

  3. Создание хранилища - CSI (например, OpenEBS).

Источник

Кроме всего прочего, Kubelet будет выполнять проверки Pod и, если Pod запущен, сообщать его IP-адрес в control plane.

Этот IP-адрес и порты контейнеров хранятся в etcd как эндпоинты.

Источник

Подождите... эндпоинты?

В Kubernetes:

  • endpoint - это пара 10.0.0.2:3000 (IP:порт).

  • Endpoint - это коллекция конечных точек (список пар IP:порт).

Для каждого сервиса в кластере Kubernetes создает объект Endpoint с конечными точками.

Запутанно, не правда ли?

Источник

Эндпоинты (IP:порт) используются:

  • kube-proxy для установки правил iptables.

  • CoreDNS для обновления записей DNS.

  • Контроллеры входа для настройки нисходящих потоков.

  • Сервисные сетки.

  • И другие операторы.

Как только добавляется конечная точка, компоненты получают уведомления.

Источник

Когда конечная точка (IP:порт) будет передана, вы наконец-то сможете начать использовать Pod!

Что происходит, когда вы удаляете Pod?

Точно такой же процесс, но в обратном порядке.

Правильная последовательность такова:

  1. Приложение перестает принимать соединения.

  2. Контроллеры (kube-proxy, ingress и т. д.) удаляют конечную точку.

  3. Приложение сливает существующее соединение.

  4. Приложение отключается.

Источник

Если вы только знакомитесь с Kubernetes, то приходите в Слёрм на курс Kubernetes: База. Это стартовый курс для администраторов, после которого вы будете знать его основные компоненты и абстракции, иметь опыт настройки кластера и запуска в нём приложений.

👉 Полная программа

Попробуйте бесплатный демо-доступ к курсу по этой ссылке. Вы получите на три дня видеоуроки из первого модуля.

Когда вы полностью пройдете всю теорию и практику и успешно сдадите сертификацию, вы будете готовы к работе с Kubernetes в продакшене.

Tags:
Hubs:
Total votes 14: ↑10 and ↓4+6
Comments2

Articles

Information

Website
slurm.io
Registered
Founded
Employees
51–100 employees
Location
Россия
Representative
Антон Скобин