「RABBITMQ」- on Kubernetes with Operator

https://www.rabbitmq.com/kubernetes/operator/install-operator
镜像:https://hub.docker.com/_/rabbitmq/

RabbitMQ Cluster Operator Plugin for kubectl

https://www.rabbitmq.com/kubernetes/operator/kubectl-plugin

kubectl krew install rabbitmq

RabbitMQ Cluster Kubernetes Operator

https://github.com/rabbitmq/cluster-operator
https://www.rabbitmq.com/kubernetes/operator/install-operator#helm-chart

Install Operator

helm repo add bitnami https://charts.bitnami.com/bitnami
helm pull bitnami/rabbitmq-cluster-operator

helm show values ./rabbitmq-xxx.tgz > ./rabbitmq-xxx.tgz.helm-values.yaml

helm upgrade --install --namespace rabbitmq-cluster-operator --create-namespace \
    rabbitmq-cluster-operator \
    ./rabbitmq-cluster-operator-4.3.22.tgz -f rabbitmq-cluster-operator-4.3.22.tgz.helm-values.yaml 

Chart Parameters
https://github.com/bitnami/charts/tree/main/bitnami/rabbitmq-cluster-operator#parameters

Modifying the RabbitMQ Cluster Operator Default Configuration
https://www.rabbitmq.com/kubernetes/operator/configure-operator-defaults

Using Operator

https://www.rabbitmq.com/kubernetes/operator/using-operator

Existing examples | https://www.rabbitmq.com/kubernetes/operator/using-operator#examples
Configure a RabbitMQ Instance | https://www.rabbitmq.com/kubernetes/operator/using-operator#configure

apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
  name: rabbitmq-cluster-default
spec:
  replicas: 3
  resources:
    requests:
      cpu: 1000m
      memory: 2Gi
    limits:
      cpu: 1000m
      memory: 2Gi
  persistence:
    storageClassName: nfs-client
    storage: 50Gi
  rabbitmq:
    additionalPlugins:
      - rabbitmq_delayed_message_exchange
  service:
    type: LoadBalancer

image:

  • Default Value: The community RabbitMQ with management plugin image. —— 所以我们不需要单独安装 Management 插件;

heidiks/rabbitmq-delayed-message-exchange

Open the Management UI

账号密码:

kubectl get secrets  rabbitmq-cluster-default-default-user -o jsonpath="{.data.username}" | base64 -d 
kubectl get secrets  rabbitmq-cluster-default-default-user -o jsonpath="{.data.password}" | base64 -d 

kubectl rabbitmq manage rabbitmq-cluster-default

Q:创建 Ingress 资源,来暴露 Management UI 服务
A:需要自行创建 Ingress 资源;
R:Creating an Ingress for the Management UI in a RabbitmqCluster spec · Issue #940 · rabbitmq/cluster-operator

RabbitMQ Messaging Topology Kubernetes Operator

https://github.com/rabbitmq/messaging-topology-operator

https://www.rabbitmq.com/kubernetes/operator/install-topology-operator

WIP