Этап 9 из 15 · ≈ 10 ч

Kubernetes для разработчика

Основа с Middle

Поды, сервисы, пробы, ресурсы и конфигурация — что нужно знать о том, где живёт ваш сервис.

Что важно знать

  • Deployment держит нужное число подов и выкатывает новые версии.
  • Service — стабильный адрес для подов.
  • Пробы: startup, liveness (жив ли), readiness (готов ли к трафику).
  • Ресурсы: requests для планирования, limits как потолок; память сверх лимита — OOMKilled.
  • Конфигурация — ConfigMap и Secret, а не вшитое в образ.
  • Остановка: SIGTERM, graceful shutdown, пауза preStop.

Критерии освоения

Middle ≈ 10 ч

  • Описывает Deployment, Service и пробы для своего сервиса
  • Задаёт requests и limits и объясняет OOMKilled и троттлинг
  • Находит причину CrashLoopBackOff по событиям и логам
  • Обеспечивает корректную остановку по SIGTERM

Практика. Развернуть сервис с базой в локальном кластере (kind или minikube) с пробами, ресурсами и конфигом, проверить rolling update без ошибок.

Senior ≈ 4 ч

  • Настраивает автомасштабирование и согласует его с ограничениями зависимостей (база, лимиты)

Практика. Настроить HPA по нагрузке и провести тест, показывающий, где масштабирование упирается в базу.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Чем Pod, ReplicaSet и Deployment отличаются друг от друга?Junior

Pod — минимальная единица: один или несколько контейнеров с общей сетью (один IP, localhost) и томами; под смертен, его IP меняется. ReplicaSet поддерживает заданное число одинаковых подов. Deployment управляет ReplicaSet-ами и даёт обновления и откаты: при…

Полный разбор
Приложение долго стартует, а Kubernetes перезапускает его по кругу. Как правильно настроить пробы?Middle

Liveness начинает проверять до окончания старта, приложение не успевает ответить — kubelet убивает его и запускает заново. Решение — startupProbe: пока она не прошла, liveness и readiness не выполняются; бюджет старта = failureThreshold × periodSeconds…

Полный разбор
Чем requests отличаются от limits в Kubernetes и что такое OOMKilled и троттлинг CPU?Middle

requests — сколько ресурсов зарезервировать: по ним планировщик выбирает узел. limits — потолок: превышение памяти → контейнер убивают (OOMKilled, код 137), превышение CPU → троттлинг (процесс притормаживают, но не убивают). Requests слишком малы — узлы…

Полный разбор
Как передать конфигурацию и секреты приложению в Kubernetes?Middle

ConfigMap — несекретные настройки, Secret — пароли, токены, сертификаты; оба подключаются как переменные окружения или файлы в томе. Secret по умолчанию лишь закодирован в base64, а не зашифрован: нужно включить шифрование etcd, ограничить RBAC и не хранить…

Полный разбор
Под в состоянии CrashLoopBackOff. Как найти причину?Middle

CrashLoopBackOff — контейнер запускается и падает, kubelet перезапускает его с растущей паузой (до 5 минут). Порядок: kubectl describe pod (события, Last State, код выхода, причина) → kubectl logs --previous (лог упавшего экземпляра) → по коду выхода: 137 …

Полный разбор
Почему контейнер не останавливается корректно и «висит» до SIGKILL?Middle

Процесс с PID 1 в контейнере особенный: ядро не применяет к нему действия сигналов по умолчанию, и если приложение не обрабатывает SIGTERM, оно его игнорирует. Частая причина — shell-форма CMD java -jar app.jar: PID 1 становится sh, который не передаёт сигнал…

Полный разбор
Из каких компонентов состоит кластер Kubernetes?Middle

Control plane: kube-apiserver — единственная точка входа, всё общение идёт через него; etcd — хранилище состояния кластера; scheduler — выбирает узел для пода; controller-manager — контроллеры, приводящие фактическое состояние к желаемому. На узлах: kubelet…

Полный разбор
Какие бывают Service в Kubernetes и чем Service отличается от Ingress?Middle

Service — стабильное имя и виртуальный IP для набора подов по меткам, балансировка на уровне L4. Типы: ClusterIP — только внутри кластера (по умолчанию), NodePort — порт на каждом узле, LoadBalancer — внешний балансировщик облака. Ingress — правила L7 (HTTP)…

Полный разбор
Как Deployment выполняет обновление и как откатить неудачную версию?Middle

Стратегия по умолчанию — RollingUpdate: создаётся новый ReplicaSet, поды постепенно заменяются. maxSurge — сколько подов сверх нужного числа можно поднять, maxUnavailable — сколько можно потерять во время обновления. Новый под получает трафик только после…

Полный разбор
Как работает автомасштабирование в Kubernetes?Middle

HPA меняет число реплик по метрике: желаемые реплики = текущие × (текущее значение / целевое). Метрика CPU считается в процентах от requests — без requests HPA не работает. VPA меняет сами requests, Cluster Autoscaler (или Karpenter) добавляет узлы, когда…

Полный разбор
Чем StatefulSet отличается от Deployment и стоит ли запускать базы данных в Kubernetes?Senior

StatefulSet даёт подам стабильные имена (db-0, db-1), свой том на каждую реплику (volumeClaimTemplates — том переживает пересоздание пода) и упорядоченный запуск и остановку. Нужен кластерам с ролями и идентичностью: БД, Kafka, ZooKeeper. PVC — запрос пода на…

Полный разбор

← Вся карта «Backend-разработчик»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования