使用 kubectl-rabbitmq 部署和运维 K8S 上的 RabbitMQ 集群
前言
最近接到一个在 K8S 中部署一个 RabbitMQ 集群的任务,既然是部署在 K8S 集群中,首选的当然是 RabbitMQ Operator 了。不过在浏览官方文档时,意外的官方也有开发一个 kubectl-rabbitmq 的插件来帮助部署和运维 RabbitMQ Operator,在试用后发现体验意外的不错。那么本文我们就使用 kubectl-rabbitmq 来部署一个 RabbitMQ 集群吧!
插件安装
安装插件前需要安装 krew,也就是 kubectl 的插件管理工具,krew 的安装这里就不做详细说明了。
安装完成后就可以使用 kubectl rabbitmq
来部署和管理 RabbitMQ 集群了。
安装 RabbitMQ Operator
使用 kubectl-rabbitmq
安装 RabbitMQ Operator 非常简单,只需一行命令:
之后就可以看到 rabbitmq-cluster-operator
已经不再在 namespace: rabbitmq-system
中了:
创建 RabbitMQ 集群
创建 RabbitMQ 集群同样简单,也是一行命令:
这里除了 <rabbitmq-cluster-name>
以外,其余参数均为可选项,内容为 RabbitMQ Operator 的 CR 文件。此处的原理也比较简单,只是生成了一份 CR 配置。更多参数请参考官方文档。
注意:请确保你集群有可用的
StorageClass
,因为默认情况下 RabbitMQ Operator 创建的 RabbitMQ 集群会为每个实例使用StorageClass
分配一个 10G 的 PVC
查看集群中所有 RabbitMQ
可以使用 list
命令查看集群中所有使用 RabbitMQ Operator 创建的 RabbitMQ 集群:
查看指定 RabbitMQ 的所有资源
使用 get
命令可以轻松查看指定 RabbitMQ 集群的全部资源:
打开 RabbitMQ UI
一般情况下,我们访问 ClusterIP 类型的 svc 都要使用到 pord-forward
的方式,kubectl-rabbitmq
则封装了该方法,使用 manage
命令即可马上弹出 UI 界面:
获取默认用户
既然已经可以访问 UI 界面了,那么下一步肯定是获取默认用户名/密码,使用 secrets
命令即可:
当然也可以直接查看 secrets
资源:
现在就顺利登陆 UI 界面了
监控 RabbitMQ
使用 observe
可以在终端观察指定 RabbitMQ 节点的监控信息,如下命令是查看 test-rabbitmq-server-0
的监控信息:
验证 RabbitMQ
为了验证 RabbitMQ 是否正常运行,使用 perf-test
来进行:
这里可以看到拉起了 perf-test
的 pod 和 svc,查看其日志:
在 UI 上也可以看到监控发生了变化。
验证完成后删除 perf-test
:
删除 RabbitMQ 集群
完成测试后,使用 delete
即可删除 RabbitMQ 集群。
总结
以上的这些功能,使用 kubectl
和 yaml 文件也可以完成同样的效果,只不过有些操作比较繁琐。kubectl rabbitmq
简化了很多操作,在实际管理和维护 RabbitMQ 集群时,是一个非常不错的工具。
版权声明: 本文为 InfoQ 作者【郭旭东】的原创文章。
原文链接:【http://xie.infoq.cn/article/d72e86c79874ad88d98079627】。文章转载请联系作者。
评论