трек

Kubernetes

Полный курс теории: от первого Pod до разбора инцидентов. Читать бесплатно, без ограничений.

Основы

YAML, зачем нужен оркестратор, устройство кластера, первый Pod и рабочий минимум kubectl.

01 теория
YAML для k8s

Минимум синтаксиса который нужен чтобы читать манифесты.

4 мин · intro
02 теория
Зачем нужен Kubernetes

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

4 мин · intro
03 теория
Архитектура кластера

Кто с кем общается в кластере. Большая схема и короткие описания компонентов.

5 мин · intro
04 теория
Первый Pod

Из чего состоит манифест Pod, какие у него фазы и два способа его создать.

6 мин · просто
05 теория
Pod глубже: command, args, restartPolicy

Как переопределить запуск контейнера и что кластер делает после его завершения.

6 мин · просто
06 теория
kubectl explain и dry-run

Как получить готовый каркас манифеста одной командой и найти нужное поле без интернета.

6 мин · просто
07 теория
Императивные kubectl: run, create, expose, scale

Набор команд, которыми ресурсы создают без YAML, и когда каждая из них уместна.

8 мин · средне
08 теория
kubectl edit и immutable поля Pod

Что у живого Pod можно поменять, что нельзя и как обойти ограничение.

8 мин · средне
09 теория
Namespace: изоляция ресурсов

Как кластер делят на области, какие ресурсы в них не попадают и по каким правилам kubectl выбирает namespace.

7 мин · просто
10 теория
Labels и селекторы

По каким меткам объекты кластера находят друг друга и как их фильтровать через -l.

6 мин · просто
11 теория
Скорость в терминале: alias, dry-run, быстрый delete

Приёмы, которые экономят минуты в консоли: короткий alias, переменные под флаги и vim под YAML.

6 мин · просто

Кластер на своём компьютере

Где практиковаться: kind, k3d, minikube и другие варианты. Сравнение, установка, типовые грабли.

01 настройка теория
Локальный Kubernetes: что выбрать под свою машину

Три семьи локальных кластеров, честная таблица версий и лицензий, выбор под macOS, Windows и Linux.

9 мин · intro
02 настройка теория
kubectl и kubeconfig: подключаемся к кластеру

Как поставить kubectl нужной версии, где живёт конфиг подключения и как не запустить учебную команду в прод.

7 мин · intro
03 настройка теория
kind: кластер из контейнеров

Как kind поднимает Kubernetes внутри Docker, как сделать multi-node, пробросить порты наружу и получить работающий Ingress.

9 мин · просто
04 настройка теория
k3d: k3s в контейнерах

Самый быстрый локальный кластер, что приезжает вместе с k3s из коробки и почему стоит посмотреть на темп релизов проекта.

8 мин · просто
05 настройка теория
minikube: драйверы, порты и аддоны

Чем minikube отличается от kind и k3d, какую версию Kubernetes он даёт на самом деле и почему порты тут отдельная тема.

9 мин · просто
06 настройка теория
GUI-приложения со встроенным Kubernetes

Docker Desktop, Rancher Desktop, OrbStack, colima и Podman Desktop: какой кластер внутри, что с портами и лицензией.

10 мин · просто
07 настройка теория
Что доставить в свежий кластер

metrics-server для kubectl top, ситуация с закрытым ingress-nginx, Gateway API и StorageClass.

10 мин · просто
08 настройка теория
За пределами ноутбука: k3s, MicroK8s, k0s, Talos

Кластер на своём сервере или VPS: что ставить, какие порты открывать и почему kubeadm стоит трогать только ради понимания control plane.

9 мин · средне

Рабочие нагрузки

ReplicaSet, Deployment, DaemonSet, Job и CronJob, StatefulSet, автоскейлинг и стратегии выката.

01 теория
ReplicaSet: держим N реплик

Контроллер, который сам восстанавливает нужное число копий Pod, и почему его почти никогда не пишут напрямую.

5 мин · просто
02 теория
Deployment: контроллер поверх ReplicaSet

Как Deployment управляет ReplicaSet, что означают колонки READY и UP-TO-DATE, какие поля задают в реальных манифестах.

6 мин · просто
03 теория
Rolling update: обновление без простоя

Как Deployment переливает трафик со старого ReplicaSet на новый, что делают maxSurge и maxUnavailable, откуда берутся ревизии.

7 мин · средне
04 теория
Rollback Deployment

Где Kubernetes хранит историю релизов и что на самом деле делает kubectl rollout undo с ReplicaSet.

7 мин · средне
05 теория
DaemonSet: по одному Pod на ноду

Контроллер для агентов, которые обязаны быть на каждой машине: как он считает реплики, при чём тут nodeSelector и taint.

5 мин · просто
06 теория
Job: разовая задача до конца

Контроллер для миграций и бэкапов: completions, backoffLimit, restartPolicy и почему Job нельзя чистить удалением Pod.

5 мин · просто
07 теория
CronJob: задачи по расписанию

Расписание в UTC, concurrencyPolicy, лимиты истории и другие места, где CronJob неприятно удивляет.

6 мин · просто
08 теория
StatefulSet и headless Service

Четыре гарантии StatefulSet, per-pod DNS через clusterIP None и как volumeClaimTemplates выдаёт каждой реплике свой диск.

8 мин · средне
09 теория
HorizontalPodAutoscaler

Как HPA считает нужное число реплик, почему без resources.requests он молчит и что делает блок behavior.

7 мин · средне
10 теория
Blue-Green деплой

Два контура и один Service-переключатель: как получить мгновенный откат и чем за это платят.

7 мин · средне
11 теория
Canary деплой

Доля трафика через соотношение реплик: как это устроено на голом Service, где точность врёт и когда пора брать service mesh.

8 мин · средне

Конфигурация

Переменные окружения, ConfigMap и Secret, init- и sidecar-контейнеры.

01 теория
Переменные окружения в Pod

Поле env в spec контейнера: литералы, valueFrom, подстановка $(VAR) и почему env не обновляется на лету.

6 мин · просто
02 теория
ConfigMap как env и как volume

Три способа отдать настройки в Pod из ConfigMap и разница между ними при обновлении данных.

7 мин · просто
03 теория
Secret и почему base64 это не шифрование

Чем Secret отличается от ConfigMap, какие бывают типы и что на самом деле защищает секреты в кластере.

7 мин · просто
04 теория
Immutable Secret: запрет на изменение данных

Что делает флаг immutable у Secret и ConfigMap, зачем он нужен и как ротировать данные, когда правки запрещены.

6 мин · средне
05 теория
Command и args в спеке контейнера

Как поля command и args перебивают ENTRYPOINT и CMD образа и почему контейнер иногда уходит в Completed за секунду.

6 мин · просто
06 теория
Init-контейнеры

Контейнеры, которые отрабатывают до основных: порядок запуска, типичные сценарии и превращение init в native sidecar.

6 мин · просто
07 теория
Sidecar для логов

Второй контейнер рядом с основным: общий emptyDir, tail -F и разница между легаси-формой и native sidecar.

6 мин · средне
08 теория
Multi-container: ambassador и adapter

Три роли для соседних контейнеров в одном Pod и признак, по которому между ними выбирают.

6 мин · средне

Сеть

Service всех типов, DNS кластера, Endpoints, NetworkPolicy, Ingress и Gateway API.

01 теория
Service ClusterIP: внутренний адрес для подов

Как группа Pod получает один стабильный адрес и DNS-имя внутри кластера.

6 мин · просто
02 теория
NodePort: порт на каждой ноде

Самый прямолинейный способ пустить трафик снаружи в кластер и его цена.

6 мин · просто
03 теория
DNS внутри кластера: короткое имя, namespace и FQDN

Как resolv.conf, search-домены и ndots превращают curl http://web в адрес Service.

6 мин · просто
04 теория
Endpoints и selector: как Service теряет поды

Откуда Service берёт список адресов, почему Endpoints уступил место EndpointSlice и что обнуляет список.

7 мин · средне
05 теория
Headless Service: clusterIP None

Что меняется, когда Service отдаёт клиенту список адресов Pod вместо одного виртуального IP.

6 мин · средне
06 теория
NetworkPolicy: кто с кем может общаться

Как правилами по меткам закрыть Pod от лишнего трафика и где прячется ошибка с одним дефисом.

6 мин · средне
07 теория
Ingress: host-based routing

Один вход на 80/443 и правила, которые раскидывают трафик по Service в зависимости от домена и пути.

10 мин · средне
08 теория
Gateway API: HTTPRoute

Почему роутинг разнесли на GatewayClass, Gateway и HTTPRoute и чем это отличается от Ingress.

8 мин · средне

Хранилище

Планирование

requests и limits, nodeSelector, affinity, taints, PodDisruptionBudget.

01 теория
Requests и limits: CPU и память

Чем requests отличаются от limits, откуда берутся единицы m и Mi, почему CPU троттлится, а память убивает Pod.

7 мин · средне
02 теория
Manual scheduling: Pod мимо шедулера

Что делает поле spec.nodeName, чем оно опасно в проде и при чём тут static pods control-plane.

5 мин · средне
03 теория
Node Selectors: нацелить Pod на нужную ноду

Как labels на нодах и spec.nodeSelector делят кластер по назначению и почему Pod уходит в Pending при опечатке.

5 мин · просто
04 теория
Node Affinity: required и preferred

Жёсткие и мягкие правила размещения, операторы matchExpressions и где в nodeSelectorTerms прячется OR.

6 мин · средне
05 теория
Taints и Tolerations: кого пускать на ноду

Как нода отгораживается от чужих Pod, чем отличаются NoSchedule, PreferNoSchedule и NoExecute, что писать в tolerations.

6 мин · средне
06 теория
Taints vs Affinity: пропуск и адрес

Почему toleration без affinity не удерживает Pod на выделенной ноде, а affinity без toleration оставляет его в Pending.

6 мин · средне
07 теория
PodDisruptionBudget: защита от drain

Чем контролируемое выселение отличается от аварийного, как minAvailable и maxUnavailable останавливают kubectl drain.

5 мин · средне

Безопасность

Наблюдаемость

Kustomize и Helm

Как перестать копипастить манифесты между dev и prod.

01 теория
Kustomize: манифесты одной группой

Как kustomization.yaml собирает разрозненные YAML в одну единицу и почему Kustomize не шаблонизатор.

5 мин · просто
02 теория
Kustomize: трансформеры

namePrefix, labels, namespace и подмена образа: правки, которые накрывают всю группу ресурсов сразу.

6 мин · просто
03 теория
Kustomize: патчи

Точечная правка одного ресурса: strategic merge patch, формат JSON 6902 и как выбирать цель.

6 мин · просто
04 теория
Kustomize: overlays для dev и prod

Схема base плюс overlays: один источник манифестов и разные конфигурации сред без копипасты.

6 мин · средне
05 теория
Kustomize: генератор ConfigMap

configMapGenerator собирает ConfigMap из literals и файлов, а хеш в имени заставляет Pod перезапуститься при правке.

6 мин · просто
06 теория
Kustomize: генератор Secret

secretGenerator и честный разбор того, что base64 в Secret ничего не защищает.

5 мин · просто
07 теория
Helm: чарт, релиз и первая установка

Из чего состоит чарт, что Helm 3 хранит в кластере после установки и как настроить релиз через --set.

6 мин · средне
08 теория
Helm: values-файл вместо --set

Порядок наложения значений, слияние нескольких файлов и правила, по которым Helm сливает словари и списки.

5 мин · просто
09 теория
Helm: upgrade и rollback

Ревизии релиза, история в Secret, откат одной командой и почему upgrade иногда теряет ранее заданные values.

6 мин · средне

Разбор поломок

ImagePullBackOff, CrashLoop, Pending, 502, упавший CoreDNS. Симптом, диагностика, причина, лечение.

01 теория
ImagePullBackOff

Почему Pod не может скачать образ, где в describe лежит настоящий текст ошибки и что с этим делают.

6 мин · просто
02 теория
livenessProbe рестартит контейнер

Как отличить упавшее приложение от криво настроенной probe и почему логи нужно читать с флагом --previous.

7 мин · средне
03 теория
Pod в Pending из-за CPU

Что означает FailedScheduling, чем requests отличаются от limits и почему нода с 4 ядрами не даст 4 ядра.

7 мин · средне
04 теория
ConfigMap не найден

Разбор CreateContainerConfigError: где Pod ссылается на внешние объекты и почему после создания ConfigMap перезапуск не нужен.

6 мин · средне
05 теория
Forbidden у ServiceAccount

Как разобрать ошибку 403 от apiserver по словам и проверить права через kubectl auth can-i, не гадая.

7 мин · средне
06 теория
Сервис не отвечает: selector не сходится

Почему пустой список endpoints это главный симптом, как сверить selector с метками Pod и с какой стороны чинить расхождение.

7 мин · средне
07 теория
Pod Running, а клиент видит 502

Разбор инцидента, где Pod здоров, но Service форвардит трафик в закрытый порт.

7 мин · жёстко
08 теория
DNS не резолвит: когда лежит CoreDNS

Как отличить общий отказ DNS от проблемы одного Service и по какой цепочке искать причину.

6 мин · жёстко
09 теория
Раскат сломанной версии: откат и разбор полётов

Почему rollout прошёл «зелёным», а сервис лёг, и как настроить probe, чтобы следующий раскат встал сам.

8 мин · жёстко
10 теория
Пропал ConfigMap: подъём сервиса после катастрофы

CreateContainerConfigError, восстановление конфига и почему Pod-ы не чинятся сами.

6 мин · жёстко
11 теория
CrashLoop по выходным: агрессивный livenessProbe

Почему сервис падает без нагрузки и как подобрать параметры probe под холодный старт.

7 мин · жёстко
12 теория
RBAC закрыл прод: CI получает Forbidden

Как читать Forbidden из пайплайна, воспроизводить права через auth can-i и собирать минимальную Role для деплоя.

7 мин · жёстко

Дальше

Паттерны приложений

01 теория
Graceful shutdown: SIGTERM и дренаж соединений

Почему приложение должно корректно завершаться по SIGTERM, как дослуживать запросы и не рвать соединения при деплое.

11 мин · средне
02 теория
Health и readiness эндпоинты

Чем liveness отличается от readiness, зачем приложению отдельный /healthz и как это связано с балансировкой и оркестратором.

10 мин · просто
03 теория
12-factor конфигурация

Почему конфиг держат в окружении, что значит «один артефакт на все среды» и какие принципы 12-factor про эксплуатацию.

10 мин · просто
04 теория
Ретраи, таймауты и circuit breaker

Как сервисы переживают чужие сбои: таймауты, безопасные ретраи с backoff и circuit breaker против каскадных отказов.

12 мин · средне
05 теория
Идемпотентность в API

Почему повторный запрос не должен создавать дубль: идемпотентные методы, ключ идемпотентности и безопасные ретраи.

11 мин · средне