Модуль 4: Продвинутые паттерны согласования

Обзор

Теперь, когда вы умеете создавать базовые операторы (Модуль 3), пришло время изучить продвинутые паттерны, которые делают операторы готовыми к продакшену. Этот модуль охватывает управление статусом, финализаторы, отслеживание и совершенные паттерны согласования, справляющиеся со сложностью реального мира.

Продолжительность: 6–7 часов
Предварительные требования:

Цели обучения

К концу этого модуля вы:

  • Реализуете корректное управление статусом с помощью условий (conditions)
  • Будете использовать финализаторы для аккуратной очистки ресурсов
  • Настроите отслеживание и индексы для эффективных контроллеров
  • Реализуете многофазное согласование и конечные автоматы (state machines)
  • Научитесь обрабатывать внешние зависимости и обеспечивать идемпотентность

Структура модуля

  1. Урок 4.1: Условия и управление статусом
  2. Урок 4.2: Финализаторы и очистка
  3. Урок 4.3: Отслеживание и индексирование
  4. Урок 4.4: Продвинутые паттерны

Проверка предварительных требований

Перед началом убедитесь, что вы завершили:

  • Модуль 3: создали оператор PostgreSQL
  • ✅ Понимаете базовое согласование из Урока 3.3
  • ✅ Умеете реализовывать контроллеры из Урока 3.1
  • ✅ Понимаете проектирование API из Урока 3.2

Если вы не завершили Модуль 3, начните с Модуля 3: Создание кастомных контроллеров.

Что вы создадите

На протяжении этого модуля вы усовершенствуете свой оператор PostgreSQL из Модуля 3, добавив:

  • Корректные условия статуса (Ready, Progressing, Failed)
  • Финализаторы для аккуратной очистки
  • Отслеживание зависимых ресурсов
  • Паттерны многофазного развёртывания
  • Конечный автомат для сложных рабочих процессов

Настройка

Перед началом этого модуля:

  1. Подготовьте свой оператор PostgreSQL из Модуля 3:
    • У вас должен быть рабочий оператор базы данных
    • Он должен создавать StatefulSet и Service
    • Базовое согласование должно работать
  2. Убедитесь, что среда разработки готова:
    ./scripts/setup-dev-environment.sh
    
  3. Запущенный кластер kind:
    ./scripts/setup-kind-cluster.sh
    

Практические лабораторные работы

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

Решения

Полные рабочие решения для всех лабораторных доступны в каталоге решений:

Навигация