Aller au contenu principal
Version: 2.0.2

Déployer RabbitMQ en 5 minutes

Ce guide vous accompagne dans le déploiement de votre premier cluster RabbitMQ sur Hikube en quelques minutes seulement 🐇⚙️


Objectifs

À la fin de ce guide, vous aurez :

  • Un cluster RabbitMQ déployé et opérationnel sur Hikube
  • Une configuration avec 3 nœuds RabbitMQ répliqués
  • Un vhost et un utilisateur admin configurés
  • Un stockage persistant pour les données RabbitMQ

Prérequis

Avant de commencer, assurez-vous d’avoir :

  • kubectl configuré avec votre kubeconfig Hikube
  • Les droits administrateur sur votre tenant

Étape 1 : Créer le manifeste RabbitMQ

Préparez le fichier rabbitmq.yaml

Créez un fichier rabbitmq.yaml contenant la configuration suivante :

rabbitmq.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: RabbitMQ
metadata:
name: default
namespace: tenant-x
spec:
replicas: 3
resourcesPreset: large
size: 10Gi
storageClass: replicated
users:
admin:
password: "strongpassword"
vhosts:
default:
roles:
admin: ["admin"]

Déployez le manifest RabbitMQ

# Appliquer la configuration
kubectl apply -f rabbitmq.yaml

Étape 2 : Vérification du déploiement

Attendez quelques instants que les pods soient créés, puis vérifiez leur statut :

# Vérifier le statut de la ressource RabbitMQ
kubectl get rabbitmq
NAME READY AGE VERSION
default True 2m 3.13.0

# Vérifier les pods RabbitMQ
kubectl get pods | grep rabbitmq
rabbitmq-rabbitmq-server-0 1/1 Running 0 2m
rabbitmq-rabbitmq-server-1 1/1 Running 0 2m
rabbitmq-rabbitmq-server-2 1/1 Running 0 2m

Une fois tous les pods en état Running, votre cluster est prêt à l’emploi.


Étape 3 : Connexion au cluster RabbitMQ

Port-forward vers le Management UI

RabbitMQ fournit une interface web d’administration. Exposez-la localement :

kubectl port-forward svc/rabbitmq-rabbitmq 15672:15672

Puis accédez à l’interface via votre navigateur : 👉 http://localhost:15672

Connectez-vous avec en recuperant le default user:

kubectl get secret rabbitmq-rabbitmq-default-user -o jsonpath='{.data}' | jq -r 'to_entries[] | "\(.key): \(.value | @base64d)"'

Étape 4 : Tester la messagerie

Port-forward du port AMQP

kubectl port-forward svc/rabbitmq-rabbitmq 5672:5672

Publier et consommer un message

Installez un client RabbitMQ local, comme rabbitmqadmin ou pika (Python) :

Exemple avec Python (pika)

pip install pika

Créez un fichier test_rabbitmq.py :

import pika

# Identifiants définis dans ta CR RabbitMQ
credentials = pika.PlainCredentials('admin', 'strongpassword')

# Connexion au service RabbitMQ du cluster CozyStack
parameters = pika.ConnectionParameters(
host='localhost', # Nom DNS Kubernetes
port=5672,
virtual_host='default', # correspond à ton vhost
credentials=credentials
)

# Connexion
connection = pika.BlockingConnection(parameters)
channel = connection.channel()

# Création d’une queue "test"
channel.queue_declare(queue='test')

# Envoi d’un message simple
channel.basic_publish(exchange='', routing_key='test', body='Hello from CozyStack!')
print(" [x] Message envoyé à RabbitMQ 🎉")

# Fermeture propre
connection.close()

Exécutez ensuite :

python test_rabbitmq.py

✅ Vous devriez voir :

Message envoyé :  [x] Message envoyé à RabbitMQ 🎉

Étape 5 : Ajouter un vhost ou un utilisateur

Vous pouvez modifier la configuration de votre cluster via kubectl patch :

kubectl patch rabbitmq default --type='merge' -p '{
"spec": {
"users": {
"app": {
"password": "apppassword123"
}
},
"vhosts": {
"analytics": {
"roles": {
"admin": ["admin"],
"readonly": ["app"]
}
}
}
}
}'

📋 Résumé

Vous avez déployé :

  • Un cluster RabbitMQ haute disponibilité sur votre tenant Hikube
  • 3 réplicas RabbitMQ avec stockage persistant
  • Un utilisateur administrateur et un vhost par défaut
  • Une interface web de gestion accessible localement
  • Une connexion AMQP testée avec un producteur/consommateur