kubectl 的 RabbitMQ 集群操作符插件
安装 kubectl 的 RabbitMQ 集群操作符插件可以更轻松地将RabbitMQ 集群 Kubernetes 操作符安装到任何 Kubernetes 实例中,因为每个插件命令都会自动执行与 Kubernetes API 和 RabbitMQ 集群操作符的许多交互。该插件还包含一些用于 RabbitMQ 集群常见工作流的命令。
要了解有关使用 RabbitMQ 集群操作符以及如何部署其管理的自定义资源对象的更多信息,请参阅使用 RabbitMQ 集群操作符信息。
在安装 kubectl 的 RabbitMQ 集群操作符插件之前
确保已安装以下工具
安装 krew
后,验证安装情况
kubectl krew
安装 kubectl 的集群操作符插件
设置 krew 后,您现在可以安装 RabbitMQ 集群操作符插件。
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 资源,包括 pod、configmap、statefulset、服务和密钥。
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
前面的命令列出了 RabbitMQ 集群操作符在目标 Kubernetes 实例上部署的所有 RabbitMQ 集群。
删除 RabbitMQ 集群
kubectl rabbitmq delete INSTANCE
前面的命令删除一个或多个 RabbitMQ 集群。删除多个 RabbitMQ 集群时,请提供以空格分隔的列表。
kubectl rabbitmq delete rmq1 rmq2 rmq3
打印 RabbitMQ 集群的默认用户密钥
kubectl rabbitmq secrets INSTANCE
前面的命令列出了命名 RabbitMQ 集群的默认用户密钥。
打开 RabbitMQ 管理 UI
kubectl rabbitmq manage INSTANCE
前面的命令在浏览器中打开 RabbitMQ 的管理 UI。
设置所有 RabbitMQ 节点的日志级别以进行调试
kubectl rabbitmq debug INSTANCE
前面的命令将所有节点上的日志级别设置为调试。有关 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 集群。该标签阻止操作符监视和更新实例。
恢复 RabbitMQ 集群上的协调
kubectl rabbitmq resume-reconciliation INSTANCE
前面的命令指示操作符恢复 RabbitMQ 集群的协调。
列出协调已暂停的实例
kubectl rabbitmq [list pause reconciliation instances](list-pause-reconciliation-instances) INSTANCE
前面的命令列出所有未由操作符协调的实例。
性能测试
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 集群操作符的反馈和功能请求。