用于 kubectl 的 RabbitMQ 集群操作器插件
安装用于 kubectl 的 RabbitMQ 集群操作器插件可以简化向任何 Kubernetes 实例安装 RabbitMQ Cluster Kubernetes Operator 的过程,因为每个插件命令都自动化了许多与 Kubernetes API 和 RabbitMQ Cluster Operator 的交互。该插件还包含多个用于 RabbitMQ 集群常见工作流的命令。
要了解有关使用 RabbitMQ Cluster Operator 以及如何部署其管理的自定义资源(Custom Resource)对象的更多信息,请参阅使用 RabbitMQ Cluster Operator 相关信息。
安装用于 kubectl 的 RabbitMQ 集群操作器插件之前
确保已安装以下工具
安装 krew 后,请验证安装是否成功
kubectl krew
安装用于 kubectl 的集群操作器插件
设置好 krew 后,现在可以安装 RabbitMQ Cluster Operator 插件了。
kubectl krew install rabbitmq
要验证插件是否已安装,请获取可用命令列表
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 集群
kubectl rabbitmq create INSTANCE
上述命令创建了一个仅配置了集群名称的基本配置的 RabbitMQ 集群。
获取 RabbitMQ 集群
kubectl rabbitmq get INSTANCE
显示与指定 RabbitMQ 集群关联的所有 kubernetes 资源,包括 pods、configmaps、statefulsets、services 和 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
列出所有 RabbitMQ 集群
kubectl rabbitmq list
上述命令列出了目标 kubernetes 实例上由 RabbitMQ cluster operator 部署的所有 RabbitMQ 集群。
删除 RabbitMQ 集群
kubectl rabbitmq delete INSTANCE
上述命令用于删除一个或多个 RabbitMQ 集群。删除多个 RabbitMQ 集群时,请提供以空格分隔的列表。
kubectl rabbitmq delete rmq1 rmq2 rmq3
打印 RabbitMQ 集群的默认用户密钥 (Secrets)
kubectl rabbitmq secrets INSTANCE
上述命令列出了指定 RabbitMQ 集群的默认用户密钥。
打开 RabbitMQ 管理界面
kubectl rabbitmq manage INSTANCE
上述命令会在浏览器中打开 RabbitMQ 管理界面 (Management UI)。
设置所有 RabbitMQ 节点的日志级别以进行调试
kubectl rabbitmq debug INSTANCE
上述命令将所有节点的日志级别设置为调试模式。有关 RabbitMQ 日志记录的详细分解,请参阅日志记录信息。
跟踪 (Tail) 日志
kubectl rabbitmq tail INSTANCE
运行上述命令后,您将在控制台上看到远程 RabbitMQ 节点的所有日志输出。注意,要运行此命令,必须安装 tail 插件。
通过运行以下命令安装 tail 插件
kubectl krew install tail
观察 RabbitMQ 集群上的节点
kubectl rabbitmq observe INSTANCE INDEX
上述命令为给定节点打开 rabbitmq-diagnostics 观察者界面。
开启所有功能标志 (Feature Flags)
kubectl rabbitmq enable-all-feature-flags INSTANCE
上述命令使用 rabbitmqctl 来激活或开启所有可能的功能标志 feature flags。
暂停 RabbitMQ 集群的协调 (Reconciliation)
kubectl rabbitmq pause-reconciliation INSTANCE
上述命令向目标 RabbitMQ 集群添加标签 "rabbitmq.com/pauseReconciliation=true"。该标签会阻止操作器监控和更新该实例。
恢复 RabbitMQ 集群的协调
kubectl rabbitmq resume-reconciliation INSTANCE
上述命令指示操作器恢复 RabbitMQ 集群的协调。
列出暂停协调的实例
kubectl rabbitmq [list pause reconciliation instances](list-pause-reconciliation-instances) INSTANCE
上述命令列出了所有未被操作器协调的实例。
性能测试 (Perf Test)
kubectl rabbitmq perf-test INSTANCE --rate 100
上述命令针对某个实例运行 perf-test。您可以在此处传递任意数量的性能测试参数。
要监控 PerfTest,请添加以下 ServiceMonitor
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: kubectl-perf-test
spec:
endpoints:
- interval: 15s
targetPort: 8080
selector:
matchLabels:
app: perf-test
请在 GitHub 上提交 RabbitMQ Cluster Operator 的反馈和功能请求。