跳至主内容

RabbitMQ Cluster Operator kubectl 插件

安装适用于 kubectl 的 RabbitMQ Cluster Operator 插件可以更轻松地将 RabbitMQ Cluster Kubernetes Operator 安装到任何 Kubernetes 实例中,因为每个插件命令都会自动处理与 Kubernetes API 和 RabbitMQ Cluster Operator 的许多交互。该插件还包含几个用于与 RabbitMQ 集群进行常见工作流程的命令。

要了解有关使用 RabbitMQ Cluster Operator 的更多信息以及如何部署它所管理的自定义资源对象,请参阅 使用 RabbitMQ Cluster Operator 信息。

安装适用于 kubectl 的 RabbitMQ Cluster Operator 插件之前

确保已安装以下工具

  • Krew 是 kubectl 命令行工具的插件管理器。
  • kubectl

安装 krew 后,请验证安装

kubectl krew

安装适用于 kubectl 的 Cluster Operator 插件

设置好 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 的 Cluster Operator 插件

创建 RabbitMQ 集群

kubectl rabbitmq create INSTANCE

上一个命令会创建一个具有一些基本配置的 RabbitMQ 集群,其中仅配置了集群名称。

获取 RabbitMQ 集群

kubectl rabbitmq get INSTANCE

显示与指定的 RabbitMQ 集群相关的所有 Kubernetes 资源,包括 Pod、ConfigMap、StatefulSet、Service 和 Secret。

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 集群的默认用户 Secret

kubectl rabbitmq secrets INSTANCE

上一个命令会列出指定 RabbitMQ 集群的默认用户 Secret。

打开 RabbitMQ 管理 UI

kubectl rabbitmq manage INSTANCE

上一个命令会在浏览器中打开 RabbitMQ 管理 UI

设置所有 RabbitMQ 节点的日志级别以进行调试

kubectl rabbitmq debug INSTANCE

上一个命令会将所有节点的日志级别设置为 debug。有关 RabbitMQ 日志记录的详细信息,请参阅 日志记录 信息。

跟踪日志

kubectl rabbitmq tail INSTANCE

运行上一个命令后,您将在控制台上看到远程 RabbitMQ 节点的所有日志输出。请注意,要运行上一个命令,您必须安装 tail 插件。

通过运行以下命令安装 tail 插件

kubectl krew install tail

观察 RabbitMQ 集群上的节点

kubectl rabbitmq observe INSTANCE INDEX

上一个命令会为给定节点打开 rabbitmq-diagnostics 观察器界面。

启用所有功能标志

kubectl rabbitmq enable-all-feature-flags INSTANCE 

上一个命令使用 rabbitmqctl 来激活或启用所有可能的功能标志 功能标志

暂停 RabbitMQ 集群上的协调

kubectl rabbitmq pause-reconciliation INSTANCE 

上一个命令会将标签 "rabbitmq.com/pauseReconciliation=true" 添加到指定的 RabbitMQ 集群。该标签可防止 Operator 监视和更新实例。

恢复 RabbitMQ 集群上的协调

kubectl rabbitmq resume-reconciliation INSTANCE 

上一个命令指示 Operator 恢复 RabbitMQ 集群的协调。

列出已暂停协调的实例

kubectl rabbitmq [list pause reconciliation instances](list-pause-reconciliation-instances) INSTANCE

上一个命令会列出所有未被 Operator 协调的实例。

性能测试

kubectl rabbitmq perf-test INSTANCE --rate 100

上一个命令会针对一个实例运行 perf-test。您可以在此处传递任意数量的 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 的反馈和功能请求。

© . This site is unofficial and not affiliated with VMware.