Как развернуть RabbitMQ в Kubernetes

Kubernetes с его подходом, ориентированным на API, является идеальным оператором для развертывания экземпляров RabbitMQ в кластере. Возможности масштабирования Kubernetes и автоматическое развертывание контейнеров повышают надежность RabbitMQ в расширенной кластерной среде. В этом руководстве показано, как установить экземпляр RabbitMQ в Kubernetes.

Развертывание RabbitMQ в Kubernetes

Установка передовых программных решений в кластере Kubernetes часто предполагает создание и редактирование нескольких сложных файлов конфигурации.

Helm, менеджер пакетов приложений Kubernetes, может упростить процесс установки и очень быстро развернуть ресурсы по всему кластеру. Для успешного развертывания RabbitMQ нам необходимо установить менеджер пакетов Helm.

Установите диспетчер пакетов Helm

Используйте следующую команду, чтобы установить последнюю версию Helm в локальном кластере Kubernetes:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
 chmod 700 get_helm.sh
 ./get_helm.sh

После завершения процесса установки запустите диспетчер пакетов Helm, введя следующую команду:

helm init

Теперь вы можете использовать Helm для развертывания ресурсов по всему кластеру с помощью нескольких коротких команд.

Создайте пространство имен для развертывания RabbitMQ.

Все ресурсы в Kubernetes запускаются в пространстве имен. Если он не указан, система использует пространство имен по умолчанию. Чтобы лучше контролировать процесс развертывания, используйте следующую команду для создания отдельного пространства имен:

kubectl create namespace rabbit

Вы можете использовать любое имя, совместимое с DNS. Созданное нами пространство имен называется Rabbit.

Система подтверждает, что пространство имен Rabbit было успешно создано.

Система подтверждает, что пространство имен успешно создано.

Установите RabbitMQ в Kubernetes

После успешной установки Helm и назначенного пространства имен вы готовы начать процесс развертывания RabbitMQ. Введите следующую команду, чтобы применить диаграмму stable/rabbitmq по умолчанию из репозитория git:

helm install mu-rabbit stable/rabbitmq --namespace rabbit

Команда развертывает RabbitMQ в кластере Kubernetes в конфигурации по умолчанию. Развертывание выполняется в созданном ранее пространстве имен Rabbit .

Обзор процесса развертывания RabbitMQ.

Терминал предоставляет информацию, необходимую для доступа к интерфейсу управления RabbitMQ из ваших браузеров, такую ​​как учетные данные, номер порта и URL-адрес.

Проверьте статус подготовки RabbitMQ

Развертывание контейнеров может занять несколько минут. Полный статус последовательности подготовки может подтвердить успешность развертывания. Чтобы просмотреть детали развертывания, введите следующую команду:

watch kubectl get deployments,pods,services --namespace rabbit

Оболочка внутри терминала предоставляет подробную информацию о пространстве имен Rabbit.

Команда отображает детали и статус развертывания RabbitMQ.

Когда вы будете готовы выйти из оболочки мониторинга, нажмите Ctrl+C .

Настройка сервера RabbitMQ

Настройки сервера RabbitMQ и его плагинов редактируются в файлах конфигурации RabbitMQ.

Вы можете использовать предпочитаемый вами текстовый редактор для доступа и настройки файла Rabbitmq.conf . Синтаксис файла конфигурации использует этот sysctl формат, и существует несколько основных принципов, которых следует придерживаться:

  • Система не выполняет строки, начинающиеся с # символа, так как считает их комментарием.
  • Вы можете определить только одну настройку в каждой строке.
  • В строках используется простая структура «Ключ = Значение».

Файл Rabbitmq.conf позволяет вам определить большинство необходимых элементов конфигурации, таких как порты, пороговые значения памяти, дисковое пространство или разрешения для подключения к брокеру.

Репозиторий исходного кода сервера RabbitMQ предоставляет подробный пример файла Rabbitmq.conf с подробными комментариями. Важно отметить, что этот пример файла представляет собой общее руководство и должен быть адаптирован с учетом конкретных потребностей вашей системы.

Примечание. Версии, предшествующие RabbitMQ 3.7.0, используют другое имя файла конфигурации — rabbitmq.config.

Настройка плагина управления RabbitMQ для включения графического интерфейса

Плагин управления RabbitMQ уже доступен в дистрибутиве по умолчанию. Используйте rabbitmq-plugins команду для включения службы:

rabbitmq-plugins enable rabbitmq_management

Получите доступ к графическому интерфейсу RabbitMQ, используя IP-адрес и номер порта сервера RabbitMQ. Введите следующий формат веб-адреса в браузере:

http://rabbitmq-ip-or-server-name:15672/

IP-адрес и номер порта были указаны в процессе установки.

Информация об IP-адресе и номере порта сервера RabbitMQ.

Сервис запрашивает ваши учетные данные. Для получения доступа к пользовательскому интерфейсу необходимо ввести имя пользователя и пароль. В новых установках RabbitMQ имя пользователя и пароль по умолчанию заранее определены как «гость».

Интерфейс инструмента управления RabbitMQ.

Теперь у вас есть доступ к удобной для пользователя среде, которая позволяет вам управлять виртуальными хостами, очередями, разрешениями и обменами.

Как RabbitMQ работает в Kubernetes?

Сама цель Kubernetes — оркестровка сервисов и автоматизация задач в сильно распределенном кластере. Брокер сообщений, такой как RabbitMQ, может повысить качество долго выполняющихся задач и стабилизировать жизненно важные фоновые процессы.

RabbitMQ использует расширенный протокол очереди сообщений (AMQP) для стандартизации обмена сообщениями между производителями, брокерами и потребителями.

  • Производитель публикует сообщение на Exchange .
  • Exchange форматирует сообщение и пересылает его в заранее определенную и выбранную очередь .
  • Затем Потребитель извлекает отформатированное сообщение и потребляет его .

Базовая архитектура RabbitMQ от производителя к потребителю.

Систематическое распространение сообщений улучшает связь между слабосвязанными приложениями и службами.

Заключение

Вы успешно установили RabbitMQ в Kubernetes с помощью диспетчера пакетов Helm. Службы, развернутые в вашем кластере, теперь могут взаимодействовать гораздо эффективнее, чем раньше.

Вы также получили доступ к плагину управления RabbitMQ. Простой пользовательский интерфейс помогает эффективно управлять очередями сообщений и в конечном итоге снижает нагрузку и время доставки ваших серверов веб-приложений.