RabbitMQ installation
Document version: 250. Automatically generated.
RabbitMQ is an open-source message-broker software (sometimes called message-oriented middleware)
It was originally implemented the Advanced Message Queuing Protocol (AMQP) and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol (STOMP), MQ Telemetry Transport (MQTT), and other protocols.
RabbitMQ 3.8 is used for asynchronous communication between applications.
Prerequisites
- Kubernetes cluster
- Helm (version 3 or higher)
- Access to Automate HELM Charts repository charts.sentione.com is granted
- Access to harbor-vm-proxy.sentione.com docker images repository is granted
- Local-path-provisioner (this is optional, but highly reccomended for data persistence. It may also be replaced with other dynamic PV provisioner like OpenEBS)
Steps
Add helm repository
To add the helm repository, use:
helm repo add sentione-hub https://charts.sentione.com/repository/helm --username USERNAME --password PASSWORD
and fetch repository data:
helm repo update
Container images repo access
The chart is based on images available on harbor-vm-proxy.sentione.com which requires authorization. Secret should be created by;
kubectl create secret \
docker-registry sec-harbor-vm-proxy.sentione.com \
--docker-server=<PRIVATE_REPO_ADDRESS> \
--docker-username=<USER> \
--docker-password=<PASSOWRD> \
--docker-email=<EMAIL> \
--namespace <NAMESPACE>
Values preparation
Before deploying the chart prepare values.yaml
file, according to this minimal template:
auth:
erlangCookie: randomcookie
password: password
username: rabbit
clusterDomain: cluster.local
global:
storageClass: local-path
image:
repository: third-party/bitnami/rabbitmq
tag: 3.8.35
persistence:
enabled: true
size: 8Gi
plugins: rabbitmq_management rabbitmq_peer_discovery_k8s rabbitmq_shovel rabbitmq_shovel_management
rabbitmq_prometheus
replicaCount: 3
ulimitNofiles: 65535
useCertManager: false
Redis cluster size
The default deployment creates a 3-node cluster, this may be changed by using:replicaCount: n
n must be uneven number
Data persistence
RabbitMQ is used for asynchronous communication between applications.
We recommend not turning off persistence as it can cause data loss.
Deployment
In order to deploy the chart run, while replacing $RABBITMQ_NAMESPACE
with the desired namespace in Kubernetes:
helm -n $RABBITMQ_NAMESPACE upgrade --install -n rabbitmq rabbitmq sentione-hub/rabbitmq -f ./values.yaml --version 11.4.0
Updated 4 days ago