Развернуть отказоустойчивый и масштабируемый кластер RabbitMQ в среде k8s
Поскольку задача не накладывает ограничений на используемые версии RabbitMQ и на версию k8s, то здесь и далее:
- RabbitMQ 3.8
- Kubernetes 1.17
- Установленный менеджер пакетов helm на рабочей станции инженера
- Для работы механизма peer discovery в среде kubernetes будет использоваться нативный плагин rabbitmq_peer_discovery_k8s;
- Для развертывания в среде Kubernetes, вместо "изобретения велосипеда", используем helm chart stable/rabbitmq-ha;
- Для активации механизма HA создадим файл ha.yaml, который переопределит узел definitions.policies файла values.yaml, поставляемого вместе с чартом
definitions:
policies: |-
{
"name": "ha",
"pattern": ".*",
"vhost": "/",
"definition": {
"ha-mode": "all",
"ha-sync-mode": "automatic",
"ha-sync-batch-size": 1
}
}
Запуск осществляется командой, приведенной ниже с указанием пути к файлу ha.yaml, который был создан ранее
$ helm install --name mbox-test-rabbit-ha -f path/to/ha.yaml stable/rabbitmq-ha