K8S 部署 RocketMQ

文章目录

集群使用 kubesphere 作为工具

添加模板

添加 helm 模板

bash 复制代码
helm repo add rocketmq-repo https://helm-charts.itboon.top/rocketmq
helm repo update rocketmq-repo

编写 value.yaml 文件

配置主从节点的个数,例子为单节点

yml 复制代码
broker:
  size:
    master: 1
    replica: 0

部署

  1. 部署一个最小化的 rocketmq 集群
    这里关闭持久化存储,仅演示部署效果
bash 复制代码
helm upgrade --install rocketmq \
  --namespace rocketmq-demo \
  --create-namespace \
  --set broker.persistence.enabled="false" \
  rocketmq-repo/rocketmq
  1. 部署测试集群
    启用 Dashboard (默认已开启持久化存储)
bash 复制代码
helm upgrade --install rocketmq \
  --namespace rocketmq-demo \
  --create-namespace \
  --set dashboard.enabled="true" \
  --set dashboard.ingress.enabled="true" \
  --set dashboard.ingress.hosts[0].host="rocketmq-demo.example.com" \
  rocketmq-repo/rocketmq
  1. 部署高可用集群, 多 Master 多 Slave
    3个 master 节点,每个 master 具有1个副节点,共6个 broker 节点
bash 复制代码
helm upgrade --install rocketmq \
  --namespace rocketmq-demo \
  --create-namespace \
  --set broker.size.master="3" \
  --set broker.size.replica="1" \
  --set broker.master.jvmMemory="-Xms2g -Xmx2g" \
  --set broker.master.resources.requests.memory="4Gi" \
  --set nameserver.replicaCount="3" \
  --set dashboard.enabled="true" \
  --set dashboard.ingress.enabled="true" \
  --set dashboard.ingress.hosts[0].host="rocketmq-ha.example.com" \
  rocketmq-repo/rocketmq

本地访问

部署成功后,默认只能集群内容器访问,若本地需要访问,需要修改配置文件 broker-base.conf

ip 修改成服务器的 ip

namesrvAddr:nameServer地址

brokerIP1:启动IP

bash 复制代码
namesrvAddr = 10.10.10.01:9876
brokerIP1 = 10.10.10.01

然后配置 9876 端口的 NodePort

修改后会报错 10911、10909 访问不了,所以还要开放 10911、10909 的端口

问题点:k8s 集群默认是只能访问 30000 以上的端口,那怎么办呢

1、修改集群 NodePort 端口范围

bash 复制代码
vim /etc/kubernetes/manifests/kube-apiserver.yaml

在 command 下添加 --service-node-port-range=1-65535 参数,修改后会自动生效,无需其他操作

2、修改默认端口 10911、10909

编辑 broker 容器的映射端口

  • vip:默认为10909,修改为 30220
  • main:默认为10911.修改为 30218
  • ha:RocketMQ 不是 部署的可以不改

修改 broker-base.conf

listenPort参数是broker的监听端口号,是remotingServer服务组件使用,作为对Producer和Consumer提供服务的端口号,默认为10911,可以通过配置文件修改。
fastListenPort参数是fastRemotingServer服务组件使用,默认为listenPort - 2,可以通过配置文件修改。

bash 复制代码
listenPort=30220

broker 的服务开放 NodePort 端口

nameserver 的服务开放 NodePort 端口

通过 ip:30754 即可本地访问

相关推荐
小Pawn爷1 小时前
实战演练:玩转k8s
云原生·容器·kubernetes
清水白石0087 小时前
Python 服务优雅停机实战:信号处理、资源收尾与 Kubernetes 滚动发布避坑指南
python·kubernetes·信号处理
.柒宇.1 天前
基于 RHEL 9.7 搭建 Kubernetes v1.34 集群实战:Docker 运行时 (cri-dockerd) 与国内源配置详解
docker·云原生·容器·kubernetes·kubelet
qq_297574671 天前
K8s系列第十四篇:K8s 故障排查实战:常见故障定位与解决方法
java·docker·kubernetes
pip install USART1 天前
容器化场景常用kubectl命令
后端·容器·kubernetes
国医中兴1 天前
数据稠密计算的内存优化:从理论到实践
微服务·云原生·容器·kubernetes·k8s
Benszen1 天前
K8S存储管理:从Volume到PV/PVC全解析
容器·rpc·kubernetes
国医中兴1 天前
数据稠密计算的并行处理:从理论到实践
微服务·云原生·容器·kubernetes·k8s
Bruce20489981 天前
Go 云原生实战:K8s Operator 开发与服务网格(Istio)落地
云原生·golang·kubernetes
小政同学1 天前
【k8s】HPA实现pod的自动扩缩容
docker·容器·kubernetes