Модуль 8: Продвинутые темы и практические паттерны
Обзор
Поздравляем с достижением финального модуля! Теперь, когда вы умеете создавать готовые к продакшену операторы (Модуль 7), пришло время изучить продвинутые темы и практические паттерны. Этот модуль охватывает мультиарендность, композицию операторов, управление stateful-приложениями и лучшие практики популярных операторов.
Продолжительность: 6–7 часов
Предварительные требования:
- Завершение всех предыдущих модулей (Модули 1–7)
- Готовый к продакшену оператор из Модуля 7
- Понимание продвинутых концепций Kubernetes
Цели обучения
К концу этого модуля вы:
- Научитесь создавать операторы с областью действия на весь кластер и мультиарендные операторы
- Будете композировать несколько операторов вместе
- Научитесь управлять stateful-приложениями с резервным копированием и миграциями
- Разберётесь в практических паттернах операторов
- Примените лучшие практики популярных операторов
Структура модуля
- Урок 8.1: Мультиарендность и изоляция пространств имён
- Урок 8.2: Композиция операторов
- Урок 8.3: Управление stateful-приложениями
- Урок 8.4: Практические паттерны и лучшие практики
Проверка предварительных требований
Перед началом убедитесь, что вы завершили:
- ✅ Модуль 7: готовый к продакшену оператор
- ✅ Имеете рабочий оператор со всеми возможностями
- ✅ Понимаете развёртывание в продакшене
- ✅ Готовы к продвинутым темам
Если вы не завершили Модуль 7, начните с Модуля 7: Подготовка к продакшену.
Что вы создадите
На протяжении этого модуля вы расширите свой оператор Database, добавив:
- Новый API ClusterDatabase с областью действия на весь кластер для поддержки мультиарендности
- Функциональность резервного копирования и восстановления
- Продвинутые паттерны stateful-приложений
- Практические лучшие практики
Настройка
Перед началом этого модуля:
- Подготовьте свой готовый к продакшену оператор из Модуля 7:
- Должен быть упакован и развёрнут
- Должны быть настроены HA и безопасность
- Готов к продвинутым возможностям
- Убедитесь, что среда разработки готова:
./scripts/setup-dev-environment.sh - Запущенный кластер kind:
./scripts/setup-kind-cluster.sh
Практические лабораторные работы
Каждый урок включает практические упражнения, которые добавляют продвинутые возможности в ваш оператор.
- Лабораторная 8.1: Создание мультиарендного оператора
- Лабораторная 8.2: Композиция операторов
- Лабораторная 8.3: Управление stateful-приложениями
- Лабораторная 8.4: Финальный проект
Решения
Полные рабочие решения для всех лабораторных доступны в каталоге решений:
Решения лабораторной 8.1 — мультиарендный оператор
- clusterdatabase-types.go — определения типов API ClusterDatabase
- clusterdatabase-controller.go — реализация контроллера ClusterDatabase
- multi-tenant-controller.go — паттерны и помощники мультиарендности
Решения лабораторной 8.2 — композиция операторов
- backup-operator.go — полный оператор резервного копирования
- operator-coordination.go — примеры координации операторов
Решения лабораторной 8.3 — управление stateful-приложениями
- backup.go — реализация функциональности резервного копирования
- restore.go — реализация функциональности восстановления
- rolling-update.go — обработка скользящих обновлений
Решения лабораторной 8.4 — финальный проект
- Полные примеры см. в README решений