Разработка операторов Kubernetes
Полноценный практический и бесплатный курс по созданию готовых к продакшену операторов Kubernetes с помощью Kubebuilder.
Данный проект является переводом оригинального курса Piyush Jajoo, доступного по ссылке k8s-operators-course. Благодарим автора за проделанную работу!
Обзор курса
Этот бесплатный курс научит вас создавать операторы Kubernetes с нуля. Вы изучите основы архитектуры Kubernetes, паттерн контроллера (controller pattern) и научитесь использовать Kubebuilder для создания собственных операторов, управляющих сложными приложениями.
| Продолжительность | 8 недель (всего 40–50 часов) |
| Уровень | от среднего до продвинутого |
| Предварительные требования | базовые знания Kubernetes, основы программирования на Go, понимание контейнеризации |
| Лицензия | бесплатный проект с открытым исходным кодом — лицензия MIT |
Чему вы научитесь
| Модуль | Описание |
|---|---|
| Модуль 1: Глубокое погружение в архитектуру Kubernetes | Узнайте, как работает управляющий слой (control plane), как функционируют механизмы API, и разберитесь в паттерне контроллера. |
| Модуль 2: Введение в операторы | Разберитесь в паттерне оператора и создайте свой первый оператор с помощью Kubebuilder. |
| Модуль 3: Создание кастомных контроллеров | Освойте controller-runtime, проектирование API и логику согласования (reconciliation). |
| Модуль 4: Продвинутые паттерны согласования | Работа с условиями, финализаторами, отслеживанием и продвинутыми паттернами. |
| Модуль 5: Вебхуки и контроль допуска | Реализация валидирующих и мутирующих вебхуков. |
| Модуль 6: Тестирование и отладка | Модульное тестирование, интеграционное тестирование и наблюдаемость. |
| Модуль 7: Подготовка к продакшену | Упаковка, RBAC, высокая доступность и производительность. |
| Модуль 8: Продвинутые темы | Мультиарендность, композиция операторов и практические паттерны. |
Подход к обучению
Этот курс делает упор на:
- Практическое обучение — каждая концепция демонстрируется через практические упражнения
- Наглядность — активное использование диаграмм Mermaid для архитектуры и процессов
- Постепенное усложнение — начинаем с простого и доходим до готовых к продакшену операторов
- Реальные примеры — вы создаёте настоящие операторы, которые можно использовать
Предварительные требования
Перед началом убедитесь, что у вас установлено:
# Required tools
Go 1.24+
kubectl
Docker or Podman
kind v0.29+
Kubebuilder 4.7+
Быстрый старт
- Склонируйте этот репозиторий:
git clone https://github.com/piyushjajoo/k8s-operators-course.git cd k8s-operators-course - Настройте среду разработки:
./scripts/setup-dev-environment.sh - Создайте кластер kind:
./scripts/setup-kind-cluster.sh - Начните с Модуля 1: Перейдите на страницу Модули, чтобы начать!
Ресурсы
- Документация Kubebuilder
- Документация API Kubernetes
- Паттерн оператора
- Код оператора Hello World — создан по этому курсу
- Код оператора Postgres — создан по этому курсу
Поделитесь своим проектом
Если вы прошли курс и создали оператор, поделитесь своим проектом в LinkedIn и отметьте Piyush Jajoo, чтобы получить обратную связь! Пожалуйста, поставьте проекту ⭐, если он оказался полезным.
Участие в проекте
Мы приветствуем ваш вклад! Открывайте issue для сообщений об ошибках, опечатках или предложений новых тем.
Этот курс бесплатен и имеет открытый исходный код, он распространяется по лицензии MIT.