This guide covers the RabbitMQ Cluster Operator plugin for kubectl. This plugin makes it easy to install the RabbitMQ Cluster Kubernetes Operator. into any Kubernetes instance and offers several commands for common workflows with RabbitMQ clusters.
The only prerequisites to using the plugin are a working installation of kubectl and krew.
Krew is the plugin manager for kubectl command-line tool.
After installing krew
, verify the installation:
kubectl krew
With krew setup we can go ahead and install the RabbitMQ Cluster Operator plugin.
kubectl krew install rabbitmq
To verify the installation, get the list of available commands:
kubectl rabbitmq help # USAGE: # Install RabbitMQ Cluster Operator (optionally provide image to use a relocated image or a specific version) # kubectl rabbitmq install-cluster-operator [IMAGE] # [...]
kubectl rabbitmq create INSTANCE
This will create RabbitMQ cluster with some basic configuration where only the cluster name is configured.
kubectl rabbitmq get INSTANCE
Display all of the kubernetes resources associated with the named RabbitMQ cluster including pods, configmaps, statefulsets, services and secrets.
NAME READY STATUS RESTARTS AGE pod/hello-rmq-server-0 0/1 Pending 0 5h31m NAME DATA AGE configmap/hello-rmq-plugins-conf 1 5h31m configmap/hello-rmq-server-conf 2 5h31m NAME READY AGE statefulset.apps/hello-rmq-server 0/1 5h31m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/hello-rmq ClusterIP 10.100.156.4 none 5672/TCP,15672/TCP 5h31m service/hello-rmq-nodes ClusterIP None none 4369/TCP,25672/TCP 5h31m NAME TYPE DATA AGE secret/hello-rmq-default-user Opaque 3 5h31m secret/hello-rmq-erlang-cookie Opaque 1 5h31m
kubectl rabbitmq list
Displays all RabbitMQ clusters deployed by the RabbitMQ cluster operator on the target kubernetes instance.
kubectl rabbitmq delete INSTANCE
Deletes a RabbitMQ cluster, or multiple RabbitMQ clusters. When deleting multiple RabbitMQ clusters, provide a space separated list.
kubectl rabbitmq delete rmq1 rmq2 rmq3
kubectl rabbitmq secrets INSTANCE
Displays the default user secrets for the named RabbitMQ cluster
kubectl rabbitmq manage INSTANCE
Opens the RabbitMQ Management UI in a browser.
kubectl rabbitmq debug INSTANCE
Sets the log level on all nodes to debug. For a detailed breakdown on RabbitMQ logging see the Logging guide.
kubectl rabbitmq tail INSTANCE
Attach to live log output from all RabbitMQ nodes. This requires the tail
plugin for kubectl
. Install it with
kubectl krew install tail
kubectl rabbitmq observe INSTANCE INDEX
Opens the rabbitmq-diagnostics
observer interface for a given node.
kubectl rabbitmq enable-all-feature-flags INSTANCE
This command uses rabbitmqctl
to enable all possible feature flags.
kubectl rabbitmq pause-reconciliation INSTANCE
This adds the label "rabbitmq.com/pauseReconciliation=true" to the target RabbitMQ cluster. The label prevents the Operator from watching and updating the instance.
kubectl rabbitmq resume-reconciliation INSTANCE
Instructs the operator to resume reconciliation for a RabbitMQ cluster.
kubectl rabbitmq [list pause reconciliation instances](list-pause-reconciliation-instances) INSTANCE
Lists all instances that are not being reconciled by the operator.
kubectl rabbitmq perf-test INSTANCE --rate 100
Runs perf-test against an instance. You can pass as many perf test parameters as you like here.
To monitor PerfTest, add the following ServiceMonitor:
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: kubectl-perf-test spec: endpoints: - interval: 15s targetPort: 8080 selector: matchLabels: app: perf-test
Please submit feedback and feature requests for the RabbitMQ Cluster Operator on GitHub.