Стадия жизненного цикла модуля: Preview
Доступно с ограничениями в редакциях: EE
Обзор модуля
Модуль managed-postgres управляет кластерами PostgreSQL в Kubernetes-кластерах.
Он позволяет пользователям конфигурировать и масштабировать PostgreSQL-кластеры в соответствии с их потребностями, обеспечивая оптимальную производительность и безопасность.
Основные фичи:
- Автоматическое развертывание: Разворачивает инстанс Postgres при помощи простой YAML конфигурации
- High Availability: Поддерживает установку отказоустойчивого кластера Postgres или одиночного инстанса на выбор.
- Управление конфигурацией: Отдельный ресурс
Postgres Classдля шаблонизации подхода к созданию кластеров с возможностью гибко валидировать пользовательские конфиги - Управление Пользователями и Базами: Декларативня модель создания пользователей и логических баз данных.
- Статус: Информативный набор состояний для отслеживания развернутого Postgres.
Включение модуля
Для включения модуля managed-postgres примените следующий манифест:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: managed-postgres
spec:
enabled: true
version: 1
После включения модуля автоматически будет создан кластерный ресурс PostgresClass с именем default.
Быстрый старт
Для примеров использования модуля смотрите:
Основные ресурсы
Модуль Managed Service Postgres предлагает инструменты для двух условных ролей Пользователь и Администратор.
Основными объектами модуля являются ресурсы Postgres, Postgres Class и контроллер состояния Postgres Operator.
Условная роль Администратор:
- управляет cluster wide ресурсом
Postgres Classи создает шаблоны валидаций, правила развертывания, конфигурацию для будущих сервисов, разворачиваемых в DKP. - Имеет доступ до системного namespace
d8-managed-postgres, где развернутPostgres Operator, до его сервисных логов, определения состояния.
Условная роль Пользователь:
- управляет ресурсом
Postgresи конфигурирует сервис принимая во внимание созданный АдминистраторомPostgres Class.
Ресурсы Администратора
PostgresClass
Ресурс PostgresClass позволяет ограничить создание невалидных конфигураций и предопределить некоторые значения.
Каждый ресурс Postgres обязательно должен быть связан с существующим ресурсом PostgresClass.
Перед развертыванием сервиса, вся конфигурация будет проверена о соответсвующий PostgresClass.
Подробное описание ресурса
Postgres Operator
При включении модуля, Postgres Operator контроллер разворачивается в системном namespace d8-managed-postgres
и согласовывает состояния Postgres и конечного сервиса во всех пользовательских namespace.
Ресурсы Пользователя
Postgres
Основной ресурс, который описывает состояние сервиса.
Должен быть создан внутри пользовательского namespace, и является точкой правды состояния для конкретного развернутого сервиса postgres.
Подробное описание ресурса