Чему вы научитесь
- Создавать локальный Kubernetes-кластер с помощью kind и проверять готовность его узлов и системных компонентов
- Работать с Kubernetes API через kubectl, различать желаемое и фактическое состояние ресурсов
- Использовать пространства имён и контексты kubectl для изоляции приложений и безопасной работы с кластером
- Дорабатывать HTTP-приложение на Python, собирать контейнерный образ и загружать его в локальный кластер
- Создавать манифесты Pod и Deployment, разбираться в связях с ReplicaSet и управлять числом реплик
- Настраивать Job и CronJob для выполнения отдельных и периодических задач
- Сопоставлять состояние Pod, события Kubernetes, коды завершения, количество перезапусков и журналы контейнеров
- Диагностировать ImagePullBackOff, CrashLoopBackOff и ошибки конфигурации контейнеров, подтверждая устранение причины
- Настраивать Service и проверять его связь с готовыми Pod через селекторы и EndpointSlice
- Исследовать разрешение имён сервисов внутри кластера и находить ошибки DNS и межпространственных обращений
- Публиковать HTTP-приложение через Ingress с Traefik и проверять маршрутизацию запросов по имени хоста
- Настраивать NetworkPolicy и проверять разрешённые и запрещённые соединения между пространствами имён
- Передавать настройки приложения через ConfigMap и различать обновление переменных окружения и подключённых файлов
- Подключать Secret к приложению без сохранения секретных значений в Git и без раскрытия их в отчётах
- Настраивать startup, readiness и liveness probes, различать готовность принимать трафик и перезапуск контейнера
- Задавать requests и limits для CPU и памяти, сопоставлять потребности Pod с доступными ресурсами узла
- Диагностировать FailedScheduling, Pending, OOMKilled и ограничение CPU по фактическому состоянию контейнеров и узлов
- Подключать PersistentVolume и PersistentVolumeClaim и проверять сохранность данных после пересоздания Pod
- Настраивать ServiceAccount, Role и RoleBinding и проверять разрешённые и запрещённые действия через kubectl auth can-i
- Исследовать Deployment, Pod, события и журналы в Headlamp и сопоставлять их с выводом kubectl
- Ограничивать права контейнера через SecurityContext, запуск без root и запрет лишних привилегий
- Выполнять поэтапное обновление Deployment и наблюдать готовность реплик, версии приложения и HTTP-ответы во время смены образа
- Восстанавливать неудачное обновление Deployment, проверять историю ReplicaSet и возврат приложения к рабочей версии
- Исследовать завершение Pod с активными запросами и сравнивать стратегии RollingUpdate и Recreate по наблюдаемой доступности
- Создавать собственный Helm chart с шаблонами Deployment и Service, именами ресурсов и согласованными метками
- Параметризовать Helm chart через values и проверять допустимость конфигурации с помощью JSON Schema
- Устанавливать и обновлять Helm-релизы, исследовать историю ревизий и восстанавливать приложение после неудачного изменения
- Проверять Helm chart через lint, template, тесты шаблонов, тестовые хуки и автоматические проверки в CI
- Самостоятельно расследовать несколько независимых неисправностей Kubernetes, вносить адресные исправления и подтверждать восстановление исходными проверками
О курсе
Для кого этот курс
Начальные требования
📚 Что нужно знать
- Docker и контейнеры: понимать назначение Dockerfile, контейнерного образа, порта и переменных окружения.
- Git и терминал: уверенно работать с репозиторием, выполнять команды и читать их результат.
- HTTP и YAML: ориентироваться в запросах к API и уметь читать конфигурационные файлы.
- Python: знать основы языка для небольших изменений в учебном приложении.
Глубокий опыт работы с Kubernetes не требуется. От настройки локального кластера до Helm и диагностики неисправностей вы пройдёте последовательно.
🧰 Что понадобится
- Компьютер с установленными Docker, Git, Python 3.12, а также инструментами
kind,kubectlиHelm 4. - Аккаунт GitHub для доступа к учебному репозиторию и выполнения заданий в собственном форке.
- Headlamp для практики с графическим интерфейсом Kubernetes.
- Возможность запустить локальный кластер. Для комфортной работы с локальным кластером ориентируйтесь на 16 ГБ оперативной памяти.
Практика рассчитана на локальную среду. При работе на Windows понадобится WSL 2; для macOS и Linux используются соответствующие инструкции проекта. Платный облачный Kubernetes не нужен.
Преподаватели курса
Как проходит обучение
☸️ От первого запуска до восстановления сервиса. В 11 разделах и 51 уроке видеолекции, текстовые разборы и вопросы сопровождают 47 практических работ.
- 🛠️ Развёртываете своё приложение: готовите образ, манифесты и Helm chart для локального Kubernetes.
- 🔎 Разбираете сбои: проверяете состояние Pod, сетевой путь, конфигурацию и результат обновления.
- 🎯 Проводите расследование: самостоятельно находите несколько неисправностей и подтверждаете, что сервис снова работает.
Что вы получите
- Собственное HTTP-приложение на Python, контейнерный образ и рабочая конфигурация локального Kubernetes-кластера kind
- Набор Kubernetes-манифестов для Namespace, Pod, Deployment, ReplicaSet-управляемых реплик, Job и CronJob
- Конфигурации Service, DNS-взаимодействий, Ingress с Traefik и NetworkPolicy с проверенными сетевыми ограничениями
- Манифесты ConfigMap, безопасного подключения Secret и трёх типов проверок состояния приложения
- Настройки CPU и памяти, PersistentVolume и PersistentVolumeClaim с проверками размещения Pod и сохранности данных
- Конфигурации ServiceAccount, RBAC и SecurityContext с результатами проверок разрешённых и запрещённых действий
- Практический опыт диагностики через kubectl и Headlamp с наблюдениями из событий, журналов, состояния Pod и EndpointSlice
- Манифесты обновления Deployment и результаты проверок поэтапного развёртывания, отката и завершения активных запросов
- Собственный Helm chart с шаблонами, параметрами окружений, JSON Schema, проверками рендера и тестами релиза
- Исправления учебных инцидентов и итоговый технический отчёт по многофакторному сбою с командами, проверками до и после и воспроизводимыми изменениями в Git