Модуль 5: Вебхуки и контроль допуска
Обзор
Теперь, когда вы умеете создавать совершенные операторы (Модуль 4), пришло время добавить вебхуки для валидации и мутации. Вебхуки позволяют валидировать и изменять ресурсы до их сохранения в etcd, обеспечивая мощный контроль над вашими пользовательскими ресурсами.
Продолжительность: 5–6 часов
Предварительные требования:
- Завершение Модуля 1: Глубокое погружение в архитектуру Kubernetes
- Завершение Модуля 2: Введение в операторы
- Завершение Модуля 3: Создание кастомных контроллеров
- Завершение Модуля 4: Продвинутые паттерны согласования
- Понимание проектирования API и валидации
Цели обучения
К концу этого модуля вы:
- Разберётесь в контроле допуска (admission control) Kubernetes и вебхуках
- Реализуете валидирующие вебхуки для пользовательской валидации
- Реализуете мутирующие вебхуки для установки значений по умолчанию и мутации
- Научитесь управлять сертификатами вебхуков и их развёртыванием
- Протестируете вебхуки локально и в продакшене
Структура модуля
- Урок 5.1: Контроль допуска в Kubernetes
- Урок 5.2: Реализация валидирующих вебхуков
- Урок 5.3: Реализация мутирующих вебхуков
- Урок 5.4: Развёртывание вебхуков и сертификаты
Проверка предварительных требований
Перед началом убедитесь, что вы завершили:
- ✅ Модуль 4: усовершенствовали оператор с условиями и финализаторами
- ✅ Понимаете проектирование API из Урока 3.2
- ✅ Имеете рабочий оператор из Модулей 3/4
- ✅ Понимаете валидацию CRD из Урока 1.4
Если вы не завершили Модуль 4, начните с Модуля 4: Продвинутые паттерны согласования.
Что вы создадите
На протяжении этого модуля вы добавите вебхуки в свой оператор Database:
- Валидирующий вебхук для пользовательских правил валидации
- Мутирующий вебхук для установки значений по умолчанию
- Управление сертификатами для безопасности вебхуков
- Настройку локального тестирования для разработки вебхуков
Настройка
Перед началом этого модуля:
- Подготовьте свой оператор Database из Модулей 3/4:
- Должен быть рабочий оператор
- API должен быть хорошо определён
- Базовая валидация в схеме CRD
- Убедитесь, что среда разработки готова:
./scripts/setup-dev-environment.sh - Запущенный кластер kind:
./scripts/setup-kind-cluster.sh
Практические лабораторные работы
Каждый урок включает практические упражнения, которые добавляют вебхуки в ваш оператор.
- Лабораторная 5.1: Исследование контроля допуска
- Лабораторная 5.2: Создание валидирующего вебхука
- Лабораторная 5.3: Создание мутирующего вебхука
- Лабораторная 5.4: Управление сертификатами
Решения
Полные рабочие решения для всех лабораторных доступны в каталоге решений:
- Решения лабораторной 5.2 — полный валидирующий вебхук
- Решения лабораторной 5.3 — полный мутирующий вебхук