Модуль 4: Продвинутые паттерны согласования
Обзор
Теперь, когда вы умеете создавать базовые операторы (Модуль 3), пришло время изучить продвинутые паттерны, которые делают операторы готовыми к продакшену. Этот модуль охватывает управление статусом, финализаторы, отслеживание и совершенные паттерны согласования, справляющиеся со сложностью реального мира.
Продолжительность: 6–7 часов
Предварительные требования:
- Завершение Модуля 1: Глубокое погружение в архитектуру Kubernetes
- Завершение Модуля 2: Введение в операторы
- Завершение Модуля 3: Создание кастомных контроллеров
- Понимание базовых паттернов согласования
Цели обучения
К концу этого модуля вы:
- Реализуете корректное управление статусом с помощью условий (conditions)
- Будете использовать финализаторы для аккуратной очистки ресурсов
- Настроите отслеживание и индексы для эффективных контроллеров
- Реализуете многофазное согласование и конечные автоматы (state machines)
- Научитесь обрабатывать внешние зависимости и обеспечивать идемпотентность
Структура модуля
- Урок 4.1: Условия и управление статусом
- Урок 4.2: Финализаторы и очистка
- Урок 4.3: Отслеживание и индексирование
- Урок 4.4: Продвинутые паттерны
Проверка предварительных требований
Перед началом убедитесь, что вы завершили:
- ✅ Модуль 3: создали оператор PostgreSQL
- ✅ Понимаете базовое согласование из Урока 3.3
- ✅ Умеете реализовывать контроллеры из Урока 3.1
- ✅ Понимаете проектирование API из Урока 3.2
Если вы не завершили Модуль 3, начните с Модуля 3: Создание кастомных контроллеров.
Что вы создадите
На протяжении этого модуля вы усовершенствуете свой оператор PostgreSQL из Модуля 3, добавив:
- Корректные условия статуса (Ready, Progressing, Failed)
- Финализаторы для аккуратной очистки
- Отслеживание зависимых ресурсов
- Паттерны многофазного развёртывания
- Конечный автомат для сложных рабочих процессов
Настройка
Перед началом этого модуля:
- Подготовьте свой оператор PostgreSQL из Модуля 3:
- У вас должен быть рабочий оператор базы данных
- Он должен создавать StatefulSet и Service
- Базовое согласование должно работать
- Убедитесь, что среда разработки готова:
./scripts/setup-dev-environment.sh - Запущенный кластер kind:
./scripts/setup-kind-cluster.sh
Практические лабораторные работы
Каждый урок включает практические упражнения, которые совершенствуют ваш оператор.
- Лабораторная 4.1: Реализация условий статуса
- Лабораторная 4.2: Реализация финализаторов
- Лабораторная 4.3: Настройка отслеживания и индексов
- Лабораторная 4.4: Многофазное согласование
Решения
Полные рабочие решения для всех лабораторных доступны в каталоге решений:
- Решения лабораторной 4.1 — вспомогательные функции для условий
- Решения лабораторной 4.2 — реализация финализатора
- Решения лабораторной 4.3 — примеры настройки отслеживания
- Решения лабораторной 4.4 — многофазное согласование с конечным автоматом