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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

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

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

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

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

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

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

Источник
Источник

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

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

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

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

Источник
Источник

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

Источник
Источник

На данный момент pod существует только в etcd в виде записи. Инфраструктура еще не создала ни одного контейнера. Здесь за дело берется 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: База. Это стартовый курс для администраторов, после которого вы будете знать его основные компоненты и абстракции, иметь опыт настройки кластера и запуска в нём приложений.

Источник: https://habr.com/ru/companies/slurm/articles/783708/


Интересные статьи

Интересные статьи

Многие команды сталкиваются с необходимостью формализовать показатели эффективности своей работы для оценки её качества и выявления возможных проблем. Существует множество метрик, с помощью которых оц...
Подготовка документации — дело затратное. Прежде чем приступать к ней, нужно подумать, действительно ли она нужна, или это делается, потому что «так принято». В статье я подробно остановился на с...
На Хабре уже описывали историю создания Python. Но мы решили не просто пересказать события ещё раз, а увидеть их глазами Гвидо ван Россума: что он сам думал об этом всём? Мы порылись в архивных текста...
Зачем вам это нужно?При разработке кода на стороне сервера время от времени возникает проблема, которую очень трудно воспроизвести, наблюдаются утечки памяти или скачки процессора, которые вы не может...
Всю школу и универ я прошла с установкой «точные науки — не моё». Сейчас мне интересно «доучиться», закрыть пробелы в математике, химии, физике. Школьная физика для меня — это задачи, где надо ...