mirror of
https://github.com/marcel-dempers/docker-development-youtube-series.git
synced 2025-06-06 17:01:30 +00:00
60 lines
1.6 KiB
Markdown
60 lines
1.6 KiB
Markdown
# RabbitMQ on Kubernetes
|
|
|
|
Create a cluster with [kind](https://kind.sigs.k8s.io/docs/user/quick-start/)
|
|
|
|
```
|
|
kind create cluster --name rabbit --image kindest/node:v1.18.4
|
|
```
|
|
|
|
## Namespace
|
|
|
|
```
|
|
kubectl create ns rabbits
|
|
```
|
|
|
|
## Storage Class
|
|
|
|
```
|
|
kubectl get storageclass
|
|
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
|
|
standard (default) rancher.io/local-path Delete WaitForFirstConsumer false 84s
|
|
```
|
|
|
|
## Deployment
|
|
|
|
```
|
|
kubectl apply -n rabbits -f .\kubernetes\rabbit-rbac.yaml
|
|
kubectl apply -n rabbits -f .\kubernetes\rabbit-configmap.yaml
|
|
kubectl apply -n rabbits -f .\kubernetes\rabbit-secret.yaml
|
|
kubectl apply -n rabbits -f .\kubernetes\rabbit-statefulset.yaml
|
|
```
|
|
|
|
## Access the UI
|
|
|
|
```
|
|
kubectl -n rabbits port-forward rabbitmq-0 8080:15672
|
|
```
|
|
Go to htttp://localhost:8080 <br/>
|
|
Username: `guest` <br/>
|
|
Password: `guest` <br/>
|
|
|
|
# Message Publisher
|
|
|
|
```
|
|
|
|
cd messaging\rabbitmq\applications\publisher
|
|
docker build . -t aimvector/rabbitmq-publisher:v1.0.0
|
|
|
|
kubectl apply -f rabbits deployment.yaml
|
|
```
|
|
|
|
# Automatic Synchronization
|
|
|
|
https://www.rabbitmq.com/ha.html#unsynchronised-mirrors
|
|
|
|
```
|
|
rabbitmqctl set_policy ha-fed \
|
|
".*" '{"federation-upstream-set":"all", "ha-sync-mode":"automatic", "ha-mode":"nodes", "ha-params":["rabbit@rabbitmq-0.rabbitmq.rabbits.svc.cluster.local","rabbit@rabbitmq-1.rabbitmq.rabbits.svc.cluster.local","rabbit@rabbitmq-2.rabbitmq.rabbits.svc.cluster.local"]}' \
|
|
--priority 1 \
|
|
--apply-to queues
|
|
``` |