Как развернуть 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.
Система подтверждает, что пространство имен успешно создано.
Установите RabbitMQ в Kubernetes
После успешной установки Helm и назначенного пространства имен вы готовы начать процесс развертывания RabbitMQ. Введите следующую команду, чтобы применить диаграмму stable/rabbitmq по умолчанию из репозитория git:
helm install mu-rabbit stable/rabbitmq --namespace rabbit
Команда развертывает RabbitMQ в кластере Kubernetes в конфигурации по умолчанию. Развертывание выполняется в созданном ранее пространстве имен Rabbit .
Терминал предоставляет информацию, необходимую для доступа к интерфейсу управления RabbitMQ из ваших браузеров, такую как учетные данные, номер порта и URL-адрес.
Проверьте статус подготовки RabbitMQ
Развертывание контейнеров может занять несколько минут. Полный статус последовательности подготовки может подтвердить успешность развертывания. Чтобы просмотреть детали развертывания, введите следующую команду:
watch kubectl get deployments,pods,services --namespace rabbit
Оболочка внутри терминала предоставляет подробную информацию о пространстве имен Rabbit.
Когда вы будете готовы выйти из оболочки мониторинга, нажмите 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-адрес и номер порта были указаны в процессе установки.
Сервис запрашивает ваши учетные данные. Для получения доступа к пользовательскому интерфейсу необходимо ввести имя пользователя и пароль. В новых установках RabbitMQ имя пользователя и пароль по умолчанию заранее определены как «гость».
Теперь у вас есть доступ к удобной для пользователя среде, которая позволяет вам управлять виртуальными хостами, очередями, разрешениями и обменами.
Как RabbitMQ работает в Kubernetes?
Сама цель Kubernetes — оркестровка сервисов и автоматизация задач в сильно распределенном кластере. Брокер сообщений, такой как RabbitMQ, может повысить качество долго выполняющихся задач и стабилизировать жизненно важные фоновые процессы.
RabbitMQ использует расширенный протокол очереди сообщений (AMQP) для стандартизации обмена сообщениями между производителями, брокерами и потребителями.
- Производитель публикует сообщение на Exchange .
- Exchange форматирует сообщение и пересылает его в заранее определенную и выбранную очередь .
- Затем Потребитель извлекает отформатированное сообщение и потребляет его .
Систематическое распространение сообщений улучшает связь между слабосвязанными приложениями и службами.
Заключение
Вы успешно установили RabbitMQ в Kubernetes с помощью диспетчера пакетов Helm. Службы, развернутые в вашем кластере, теперь могут взаимодействовать гораздо эффективнее, чем раньше.
Вы также получили доступ к плагину управления RabbitMQ. Простой пользовательский интерфейс помогает эффективно управлять очередями сообщений и в конечном итоге снижает нагрузку и время доставки ваших серверов веб-приложений.