← Kubernetes: основы
4 мин · intro · Урок 2 из 11

Зачем нужен Kubernetes

Что k8s делает за тебя когда упала нода или вырос трафик.

У тебя 4 контейнера api на двух серверах. В 4 утра один сервер падает. С Docker без оркестратора ты получишь алерт в час дежурства и побежишь ssh-иться. На k8s ты узнаёшь утром из логов, потому что кластер уже всё разрулил сам.

Ниже две сцены, ради которых k8s вообще придумали. Первая — что происходит, когда умирает нода. Вторая — что происходит, когда внезапно пришёл большой трафик из-за рекламной кампании.

node-1 падает, k8s переносит поды на node-2 node-1 · healthy api api node-2 · healthy api api 4 пода живы, по 2 на каждой ноде node-1 · NotReady api api node-2 · healthy api api 2 пода умерли вместе с нодой, осталось 2 из 4 node-1 · NotReady node-2 · 4 pods api api api api scheduler поднял 2 новых пода на живой ноде

Примерно через 50 секунд node controller перестаёт получать heartbeat от ноды и выставляет ей статус Unknown. Порог не константа: его задаёт флаг --node-monitor-grace-period, и на своём кластере его можно подкрутить. Дальше k8s сравнивает желаемое состояние с реальным: «должно быть 4 реплики, живых 2». Scheduler ищет ноду, где хватит CPU и памяти. Kubelet на этой ноде тянет образ из registry и стартует контейнер.

Параллельно Service обновляет список endpoints. kube-proxy перестаёт слать трафик на мёртвые поды и подхватывает новые. Юзер видит в худшем случае пару 502-ок на ретраях, дальше всё штатно.

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

трафик растёт, HPA добавляет реплики node-1 api node-2 api 2 пода · 100 rps · CPU 25% node-1 api api api node-2 api api 5 подов · 600 rps · CPU 65% node-1 api api api api api node-2 api api api api api 10 подов · 1800 rps · CPU 70%

HPA (Horizontal Pod Autoscaler) раз в 15 секунд смотрит метрики. Из коробки это CPU и память; RPS и другие кастомные метрики (например из Prometheus) подключаются через custom/external metrics API. Перевалило за порог — HPA сам бампит количество реплик в Deployment. Scheduler раскладывает новые поды по живым нодам с учётом ресурсов.

Пик закончился, средний CPU упал ниже целевого — HPA выдерживает паузу (по умолчанию 5 минут, чтобы не дёргаться на коротких всплесках) и плавно уносит лишние поды. Ты в это время заливаешь кофе.

Никаких ночных «срочно докинь реплик», никаких ручных kubectl scale. Декларация в манифесте, кластер сам приводит реальность к ней.

Когда тебе НЕ нужен k8s

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

Один контейнер на одной VPS — docker run плюс systemd. Несколько сервисов с базой — docker compose. Под сайт-визитку хватит nginx и пары процессов. На таких задачах k8s забирает больше времени, чем возвращает.

Сам кластер тоже надо обслуживать: control plane, ingress, RBAC, etcd-бэкапы, мониторинг. Если ты не можешь объяснить себе одной фразой «вот поэтому compose не тянет», скорее всего тебе хватит compose.

Если всё-таки решил брать — managed-кластер в Yandex Cloud или Selectel дешевле и проще, чем поднимать control plane самому.

В следующем уроке разбираем устройство кластера: control plane (api-server, etcd, scheduler, controller-manager) и worker-ноды с kubelet.

Дрилл · вопросы как на собесе

Проверь себя без подсказок

Сформулируй ответ вслух или письменно, потом раскрой и честно отметь: знал или нет.

01

Что такое Kubernetes и какую проблему он решает?

K8S-001

Прошли материал до конца? Отметьте урок пройденным.