Resource nubes_rabbitmq · v1.0.0 · Service ID: 93 · Service Name: RabbitMQ¶
Manual · Create params · Modify params · Output params · Operations · Example
Сервис RabbitMQ (nubes_rabbitmq). См. Create params для списка параметров.
Справка (MAN)
Инструкция по развертыванию 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. Установите её или используйте образ с предустановленной утилитой.
Задайте переменные окружения с учётными данными:
Где:
* <adminUser> и <adminPass> — учётные данные из раздела "Учётные данные"
* <host> — адрес для подключения:
* Для внешнего подключения: externalConnect.admin.fqdn или externalConnect.master.fqdn
Создание очереди:
rabbitmqadmin \
-H "$RABBIT_HOST" -P 15672 \
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \
declare queue name=healthcheck durable=false
Листинг очередей:
rabbitmqadmin \
-H "$RABBIT_HOST" -P 15672 \
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \
list queues
Отправка сообщения:
rabbitmqadmin \
-H "$RABBIT_HOST" -P 15672 \
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \
publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"
Чтение сообщения:
rabbitmqadmin \
-H "$RABBIT_HOST" -P 15672 \
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \
get queue=healthcheck ackmode=ack_requeue_false
6. Дополнительная информация¶
Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".
Веб-интерфейс управления доступен по адресу, указанному в параметре externalConnect.admin.fqdn через HTTPS.
Для внутреннего подключения используйте адрес из inernalConnect.master на порту 5672.