Модуль 3: Создание кастомных контроллеров

Обзор

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

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

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

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

  • Глубоко разберётесь в архитектуре controller-runtime
  • Спроектируете хорошо структурированные API для своих операторов
  • Реализуете надёжную логику согласования
  • Научитесь эффективно работать с клиентом Kubernetes
  • Создадите оператор базы данных, управляющий PostgreSQL

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

  1. Урок 3.1: Глубокое погружение в Controller Runtime
  2. Урок 3.2: Проектирование вашего API
  3. Урок 3.3: Реализация логики согласования
  4. Урок 3.4: Работа с Client-Go

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

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

  • Модуль 1: понимание CRD, контроллеров и согласования
  • Модуль 2: создание вашего первого оператора «Hello World»
  • ✅ Умение генерировать каркас проектов kubebuilder
  • ✅ Понимание основ функции Reconcile

Если вы не завершили Модуль 2, начните с Модуля 2: Введение в операторы.

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

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

  • Управляет экземплярами баз данных PostgreSQL
  • Обрабатывает создание и конфигурацию базы данных
  • Управляет StatefulSet и Service
  • Реализует корректную логику согласования
  • Использует ссылки-владельцы для управления ресурсами

Это развивает ваш оператор «Hello World» из Модуля 2, добавляя сложность и реальные паттерны.

Настройка

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

  1. Проверьте завершение Модуля 2:
    • Вы должны были создать оператор «Hello World»
    • Вы понимаете структуру проекта kubebuilder
    • Вы умеете запускать операторы локально
  2. Убедитесь, что среда разработки готова:
    ./scripts/setup-dev-environment.sh
    
  3. Запущенный кластер kind:
    ./scripts/setup-kind-cluster.sh
    

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

Каждый урок включает практические упражнения, ведущие к созданию полноценного оператора PostgreSQL.

Решения

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

Навигация