Технологии3 мин чтения
Kubernetes простыми словами: зачем он нужен и как устроен кластер
Kubernetes управляет контейнерами на многих машинах сразу: вы описываете желаемое состояние приложения, а кластер сам поддерживает его. Разбираем, из каких частей состоит кластер, что делают API Server, etcd, Scheduler и kubelet и что происходит после команды kubectl.

Проблема, которую решает Kubernetes
Один контейнер на одном сервере запускается одной командой. Проблемы начинаются, когда контейнеров десятки, серверов несколько, а приложение должно переживать падение машины и расти под нагрузкой. Kubernetes берёт на себя размещение контейнеров по серверам, перезапуск упавших, масштабирование и обновление без остановки.
Ключевая идея — желаемое состояние. Вместо последовательности команд «запусти здесь, потом там» вы описываете результат: три копии сервиса с такой-то версией образа. Кластер постоянно сравнивает фактическое состояние с желаемым и устраняет разницу. Этот цикл называется reconciliation loop.

Самая частая ошибка, которую мы видим у клиентов: кластер завели ради «правильной архитектуры», а поддерживать его некому. Для сайта на CMS хватает одного сервера с бэкапами, а Kubernetes стоит начинать, когда есть кому дежурить.
Из чего состоит кластер
Кластер делится на управляющую часть, control plane, и рабочие узлы, worker nodes. Узел, или node, — это физический сервер, виртуальная машина или облачный инстанс. Минимальная единица развёртывания — pod: обёртка вокруг одного, реже нескольких контейнеров, которые делят сеть и диск.
- API Server — единственная точка входа: через него проходят все команды и запросы.
- etcd — распределённое хранилище, где лежит состояние кластера.
- Scheduler — выбирает узел для каждого нового pod по ресурсам и правилам.
- Controllers — следят за расхождениями между желаемым и фактическим состоянием и запускают исправления.
- kubelet — агент на каждом узле, который запускает и контролирует pod.
- Container runtime, например containerd, — запускает сами контейнеры.




Что происходит после kubectl apply
Последовательность из пяти шагов повторяется при каждом изменении. Понимание этой цепочки помогает читать логи и понимать, где застряло развёртывание.
- Вы отправляете манифест через kubectl в API Server.
- API Server сохраняет желаемое состояние в etcd.
- Контроллеры замечают, что нужных pod ещё нет, и создают их объекты.
- Scheduler назначает каждому pod конкретный узел.
- kubelet на этом узле запускает контейнеры через container runtime и докладывает о статусе.



Когда Kubernetes нужен, а когда нет
Kubernetes оправдан, когда сервисов много, нагрузка меняется и простой стоит дорого: интернет-магазин с пиками, продукт с несколькими командами, SaaS с обновлениями несколько раз в день. Для корпоративного сайта, лендинга или небольшого магазина на 1С-Битрикс кластер избыточен: один сервер с резервными копиями и мониторингом дешевле в поддержке и понятнее подрядчикам.
Если сомневаетесь, посчитайте не стоимость запуска, а стоимость владения: кому в команде поддерживать кластер, кто дежурит ночью и сколько времени уйдёт на обучение.
Итог
Kubernetes — это система, которая держит приложение в описанном вами состоянии на группе машин. Control plane принимает решения, узлы исполняют, etcd помнит. Для большинства сайтов малого бизнеса он не нужен, для продуктов с постоянными релизами и переменной нагрузкой — стандарт.
Источники
Подписаться на журнал
Новые разборы о сайтах, SEO и ИИ выходят в журнале QIO. Подпишитесь в Google, по RSS или в Telegram, чтобы получать их первыми.


