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=<adminUser><br/>export RABBITMQ_PASSWORD=<adminPass><br/>export RABBIT_HOST=<host><br/>
Где:
* <adminUser> и <adminPass> — учётные данные из раздела "Учётные данные"
* <host> — адрес для подключения:
* Для внешнего подключения: externalConnect.admin.fqdn или externalConnect.master.fqdn
Создание очереди:
bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> declare queue name=healthcheck durable=false<br/>
Листинг очередей:
bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> list queues<br/>
Отправка сообщения:
bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"<br/>
Чтение сообщения:
bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> get queue=healthcheck ackmode=ack_requeue_false<br/>
---
## 6. Дополнительная информация
Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".
Веб-интерфейс управления доступен по адресу, указанному в параметре externalConnect.admin.fqdn через HTTPS.
Для внутреннего подключения используйте адрес из inernalConnect.master на порту 5672.
---