awesome-everything EN
↑ Обратно к восхождению

Деплой и инфра

K8s objects: тест с выбором ответа

Суть Синтез всего юнита K8s objects в формате выбора — reconciliation, иерархия объектов, селекторы Service, probes, ConfigMap/Secret и requests против limits.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

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

Цель

Проверьте, что вы связываете воедино reconciliation loop, иерархию Pod→ReplicaSet→Deployment, селекторы Service, семантику probes, поведение ConfigMap/Secret и requests против limits — синтез, к которому вёл урок.

Викторина

Узел перезагружается и уносит с собой 3 из 5 подов Deployment. Никто не запускает никаких команд. Что восстанавливает количество и каков механизм?

Викторина

Джуниор запускает kubectl run debug --image=busybox для разового пода, и тот работает днями. Почему это всё равно неверно для всего, что должно оставаться поднятым?

Викторина

Deployment задаёт selector app=web, и Service тоже выбирает app=web. Позже создаётся второй Deployment, чьи поды тоже несут app=web. Что происходит с трафиком?

Викторина

Приложению нужно ~25с на прогрев (загрузка config + прогрев пула) до готовности обслуживать, и спустя часы оно иногда зависает. Команда добавляет только это: ```yaml livenessProbe: httpGet: { path: /healthz, port: 8080 } initialDelaySeconds: 30 ``` Раскаты всё ещё дают всплески 500. Почему и чего не хватает?

Викторина

Вы обновляете ConfigMap, потребляемый как env-переменные работающим Deployment: ```yaml envFrom: - configMapRef: { name: app-config } ``` Новое значение не доходит до подов даже спустя часы. Корневая причина и стандартное исправление?

Викторина

Чувствительный к задержкам сервис задаёт: ```yaml resources: requests: { cpu: 250m, memory: 256Mi } limits: { cpu: 500m, memory: 256Mi } ``` Под нагрузкой видны периодические всплески задержек и редкий OOMKill. Каковы два разных механизма и какая ручка опаснее?

Итог

Сквозная линия юнита — одна модель: вы объявляете desired state, и контроллеры вечно reconcile actual к нему — поэтому Deployment самовосстанавливается, а голый Pod нет. Иерархия добавляет по одной задаче на слой (Pod гоняет контейнеры, ReplicaSet держит count, Deployment катит и откатывает), Service выбирают поды по метке в набор Endpoints без понятия о владении, probes делятся на readiness (гейтит трафик) и liveness (перезапускает), изменения ConfigMap/Secret никогда не катят автоматически, а ресурсы делятся на CPU (троттлится, сжимаем) и память (OOMKill, несжимаема). Каждый продакшен-отказ здесь сводится к одной из этих семантик.

Продолжить восхождение ↑K8s objects: тест на воспроизведение
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources4
expand
  1. 01
  2. 02
  3. 03
  4. 04

Trademarks belong to their respective owners. Editorial reference only.