mq-playground
prerequisites
- Rancher Desktop:
1.8.1
- Kubernetes:
v1.26.3
- kubectl
v1.26.0
- Helm:
v3.11.2
- pdm:
2.4.8
setup
tl;dr: bash scripts/up.sh
namespace
kubectl create namespace mq --dry-run=client -o yaml | kubectl apply -f -
rabbitmq
follow the bitnami rabbitmq chart to install rabbitmq
helm repo add bitnami https://charts.bitnami.com/bitnami
helm upgrade --install mq-rabbitmq bitnami/rabbitmq -n mq -f rabbitmq/values.yaml
verify the rabbitmq is running
kubectl port-forward --namespace mq svc/mq-rabbitmq 15672:15672
then visit http://localhost:15672/
with credential
username: admin
password: admin
port forward to localhost
kubectl port-forward --namespace mq svc/mq-rabbitmq 5672:5672
redis
follow the bitnami redis chart to install redis
helm repo add bitnami https://charts.bitnami.com/bitnami
helm upgrade --install mq-redis bitnami/redis -n mq -f redis/values.yaml
verify the installation
kubectl exec -it svc/mq-redis-master -n mq -- redis-cli -h mq-redis-master -a admin_password scan 0
port forward to localhost
kubectl port-forward --namespace mq svc/mq-redis-master 6379:6379
playground
python celery
publish messages
cd py
pdm install
pdm run python producer.py
workers
pdm run celery -A proj worker -l INFO -Q default
pdm run celery -A proj worker -l INFO -Q slow --prefetch-multiplier=1 --concurrency=1
monitor
pdm run celery -A proj flower
restart
Warm shutdown
- wait for tasks to complete
Cold shutdown
- terminate ASAP
- Restoring unacknowledged message(s)
cleanup
tl;dr: bash scripts/down.sh
helm uninstall mq-redis -n mq
helm uninstall mq-rabbitmq -n mq
kubectl delete pvc --all -n mq
kubectl delete namespace mq