Files
tf_provider/docs/30_registry/resources/rabbitmq_man.md
T
2026-06-30 15:45:24 +04:00

9.6 KiB

MAN: rabbitmq

Инструкция по развертыванию RabbitMQ через платформу

---
## 1. Общая информация
RabbitMQ — это брокер сообщений с открытым исходным кодом, который обеспечивает надёжную доставку сообщений между приложениями.
Позволяет надёжно передавать сообщения между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние, так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.

## Доступные операции
- create — Создание кластера
- modify — Изменение параметров кластера
- delete — Удаление кластера
- suspend — Остановка кластера
- resume — Запуск кластера


---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса RabbitMQ:

* Платформа для развертывания:
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: k8s-3.ext.nubes.ru.

* Количество узлов в сети:
Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности.
Пример: 1 (single node) или 3 (кластер с репликацией)

* Квота (megabyte) памяти пода:
Квота памяти пода в мегабайтах. Пример: 2048

* Квота (millicore) ядра пода:
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: 1000

* Размер (gigabyte) диска для базы данных:
Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: 50

* Выделяет внешний IP для доступа к master:
Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672.
Пример: true или false

* Имя ipSpace для публикации внешнего IP master:
Если включен предыдущий параметр, то поле необходимо заполнить. Пример: internet-no-antiddos-v1


---
## 3. Модификация кластера
Операция modify позволяет изменить параметры существующего кластера RabbitMQ.

Изменяемые параметры:
* Квота (megabyte) памяти пода — можно увеличить или уменьшить
* Квота (millicore) ядра пода — можно увеличить или уменьшить
* Размер (gigabyte) диска для базы данных — можно только увеличить (уменьшение не поддерживается)
* Количество узлов в сети — можно только увеличить (уменьшение не поддерживается)
* Выделяет внешний IP для доступа к master — можно включить или выключить
* Имя ipSpace для публикации внешнего IP master — можно изменить при включенном внешнем IP

Ограничения:
* Уменьшение размера диска не поддерживается
* Уменьшение количества реплик не поддерживается

---
## 4. Выходные параметры
После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":

clusterDomain
Домен кластера Kubernetes, в котором развернут RabbitMQ.
Пример: cluster.local

inernalConnect
Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых внутри той же сети.
Содержит:
* master — FQDN для подключения к кластеру. Пример: rabbitmqk8s.{namespace}.svc.{clusterDomain}

externalConnect
Внешние эндпоинты для подключения к кластеру RabbitMQ извне.
Содержит объекты с полями:
* admin — доступ к веб-интерфейсу управления:
* fqdn — полное доменное имя для веб-интерфейса. Пример: admin.{namespace}.{domain}
* ip — IP-адрес
* master — доступ к AMQP протоколу (если включен внешний IP):
* fqdn — полное доменное имя для AMQP. Пример: write.{namespace}.{domain}
* ip — IP-адрес

monitoring
Информация о дашбордах мониторинга:
* allDashboards — URL для доступа ко всем дашбордам Grafana

Для подключения используются следующие порты:

* 5672 — AMQP протокол (внутренний и внешний доступ, если включен внешний IP)
* 15672 — веб-интерфейс управления (доступен через Ingress по HTTPS)

Учётные данные
Данные для подключения к RabbitMQ доступны в разделе "Учётные данные":
* adminUser — имя пользователя администратора
* adminPass — пароль администратора


---
## 5. Примеры подключения через консоль (rabbitmqadmin)

### Работа с очередями через rabbitmqadmin

Для работы с RabbitMQ через консоль используется утилита rabbitmqadmin. Установите её или используйте образ с предустановленной утилитой.

Задайте переменные окружения с учётными данными:

bash<br/>export RABBITMQ_USERNAME=&lt;adminUser&gt;<br/>export RABBITMQ_PASSWORD=&lt;adminPass&gt;<br/>export RABBIT_HOST=&lt;host&gt;<br/>

Где:
* &lt;adminUser&gt; и &lt;adminPass&gt; — учётные данные из раздела "Учётные данные"
* &lt;host&gt; — адрес для подключения:
* Для внешнего подключения: externalConnect.admin.fqdn или externalConnect.master.fqdn

Создание очереди:

bash<br/>rabbitmqadmin \<br/> -H &quot;$RABBIT_HOST&quot; -P 15672 \<br/> -u &quot;$RABBITMQ_USERNAME&quot; -p &quot;$RABBITMQ_PASSWORD&quot; \<br/> declare queue name=healthcheck durable=false<br/>

Листинг очередей:

bash<br/>rabbitmqadmin \<br/> -H &quot;$RABBIT_HOST&quot; -P 15672 \<br/> -u &quot;$RABBITMQ_USERNAME&quot; -p &quot;$RABBITMQ_PASSWORD&quot; \<br/> list queues<br/>

Отправка сообщения:

bash<br/>rabbitmqadmin \<br/> -H &quot;$RABBIT_HOST&quot; -P 15672 \<br/> -u &quot;$RABBITMQ_USERNAME&quot; -p &quot;$RABBITMQ_PASSWORD&quot; \<br/> publish exchange=amq.default routing_key=healthcheck payload=&quot;ping-$(date +%s)&quot;<br/>

Чтение сообщения:

bash<br/>rabbitmqadmin \<br/> -H &quot;$RABBIT_HOST&quot; -P 15672 \<br/> -u &quot;$RABBITMQ_USERNAME&quot; -p &quot;$RABBITMQ_PASSWORD&quot; \<br/> get queue=healthcheck ackmode=ack_requeue_false<br/>

---
## 6. Дополнительная информация
Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".

Веб-интерфейс управления доступен по адресу, указанному в параметре externalConnect.admin.fqdn через HTTPS.

Для внутреннего подключения используйте адрес из inernalConnect.master на порту 5672.

---