Доступно в редакциях:  Ultimate/EE

Входит в расширения:  Управляемые сервисы обработки данных

Стадия жизненного цикла модуля: Предварительная версия (preview)

У модуля есть требования для установки

Модуль managed-rabbit позволяет пользователям кластера развёртывать брокеры сообщений RabbitMQ в своих неймспейсах без самостоятельного администрирования RabbitMQ. Администраторы кластера задают допустимые размеры экземпляров и настройки, а модуль развёртывает и настраивает каждый экземпляр и отслеживает его состояние.

Пользователь описывает экземпляр объектом Rabbit. Каждый объект Rabbit ссылается на RabbitClass — набор правил уровня кластера, который создаёт администратор. Модуль проверяет объект Rabbit по правилам класса, развёртывает RabbitMQ и сообщает результат в статусе объекта.

Основные возможности

  • Развёртывание экземпляра RabbitMQ одним манифестом с нужным количеством CPU, объёмом памяти и диска.
  • Готовый Service и Secret со сгенерированными учётными данными для подключения приложений.
  • TLS для клиентских подключений с сертификатом от cert-manager или с собственным сертификатом.
  • Ограничение доступных пользователям размеров экземпляров и настроек RabbitMQ правилами RabbitClass и выражениями CEL.
  • Размещение подов RabbitMQ на выделенных узлах с помощью селекторов узлов, node affinity и tolerations, заданных в классе.
  • Отслеживание развёртывания и применения конфигурации по conditions в статусе объекта Rabbit.

Как работает модуль

Модуль обрабатывает объект Rabbit в следующем порядке:

  1. Пользователь создаёт объект Rabbit в неймспейсе.
  2. Модуль проверяет запрошенные ресурсы и настройки по правилам RabbitClass, на который ссылается объект. Объект, не прошедший проверку, отклоняется с сообщением об ошибке.
  3. Модуль создаёт Secret с учётными данными, постоянный том, конфигурацию RabbitMQ и TLS-сертификат, если включён TLS.
  4. Модуль запускает RabbitMQ и создаёт Service для клиентских подключений.
  5. Модуль обновляет conditions в статусе объекта Rabbit. Когда все conditions принимают значение True, экземпляр готов к подключениям.

Инструкции для пользователей приведены в руководстве пользователя, для администраторов — в руководстве администратора.

Ограничения

У модуля есть следующие ограничения:

Ограничение Значение
Версия RabbitMQ 4.3.5
Количество серверов RabbitMQ на один объект Rabbit 1, без кластеризации и репликации
Порты, доступные через Service AMQP 5672 без TLS или AMQPS 5671 с TLS. Интерфейс управления и метрики через Service недоступны
Настройки RabbitMQ, доступные пользователям maxMessageSize