Rocketmq集群ymal部署
1. Rocketmq集群部署
RocketMQ 5.0 提出了自主切换架构。自主切换架构新增了一个 Controller 模块,负责选主。当某个 Broker Master 故障,会选择合适的 Broker Slave 提升为 Master,无需人工介入
1.1 CRDS部署
# cd /rocketmq/operator
# kubectl apply -f crds/.
# kubectl get crd
1.2 RocketMQ Operator 部署
# /rocketmq/operator
# kubectl apply -f .
1.3 配置 Name Service CR–不执行
配置 Name Service CR。Name Service CR 配置较为重要的字段有两个,其一为 size,即需要部署了多少个 NameServer 节点,其二为 hostNetwork ,默认 false ,此时客户端只能在 Kubernetes 集群内与 NameServer 进行通讯。如果Kubernetes 集群外的客户端需要访问到 RocketMQ 集群,需要将 hostNetwork 配为 true ,NameServer 的接入点需要配置为 NameServer 所在的 Node IP
# cd /rocketmq
# kubectl apply -f nameservices/rocketmq_nameservice_cr.yaml
# kubectl get NameService -n jwgod-test
1.4 配置 Controller CR–不执行
配置 Controller CR。注意 size 需要配置为奇数。Controller 的数据需要持久化存储,可以利用云服务提供商提供的 StorageClass,无需自行维护存储。如果希望配置自己的存储
# cd /rocketmq
# kubectl apply -f controller/rocketmq_controller_cr.yaml
# kubectl get Controller -n jwgod-test
1.5 配置 Broker CR–不执行
配置 Broker CR。示例中配置了两组 Broker,每组有一个备节点,同时将 clusterMode 设置为 Controller,启动自主切换架构集群
# cd /rocketmq
# kubectl apply -f broker/rocketmq_broker_cr.yaml
# kubectl get Broker -n jwgod-test
准备好以上三个模块的相关配置文件之后,执行 kubectl apply 命令提交给 Kubernetes 集群。其余的部署、运维等动作均交由 RocketMQ Operator 自动完成。
成功部署后,可以通过 kubectl get po 命令查看部署的Pod。可以看到部署了4个Broker节点、Controller 和 NameSever 节点各3个。
进入一个 Broker Pod,可以使用 clusterlist 命令查看集群状态,可以看到集群有两组 Broker,每一组各有一主(BID=0)一备
1.6 配置NS Controller Broker
# cd /rocketmq
# kubectl apply -f cluster_rocketmq/rocketmq_v1alpha1_rocketmq_cluster.yaml
# kubectl get NameService -n jwgod-test
# kubectl get Controller -n jwgod-test
# kubectl get Broker -n jwgod-test
1.7 rocketmq-dashboard
# cd /rocketmq
# kubectl apply -f mqdashboard/rocketmq-dashboard.yaml
2. yaml文件下载地址
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 悩姜!


