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 即可本地访问

相关推荐
运维栈记1 天前
如何排错运行在Kubernetes集群中的服务?
云原生·容器·kubernetes
木风小助理2 天前
Kubernetes持久化存储架构深度解析:从易失的Pod到永恒的数据
kubernetes
一周困⁸天.2 天前
K8s -蓝绿发布与金丝雀发布
docker·容器·kubernetes
永不停歇的蜗牛2 天前
K8S之rke2证书过期,如何处理以及遇到的问题
服务器·容器·kubernetes
你想考研啊2 天前
k8s使用kubectl报错
java·docker·kubernetes
回忆是昨天里的海2 天前
记录线上k8s拉取不了阿里云镜像的一次临时处理
阿里云·容器·kubernetes
木风小助理2 天前
Kubernetes Service 架构深度解析:从虚拟IP到流量的智能寻址
kubernetes
运维行者_2 天前
APM 性能监控是什么?从应用监控与网站监控了解基础概念
网络·数据库·云原生·容器·kubernetes·智能路由器·运维开发
小毅&Nora2 天前
【云计算】【Kubernetes】 ⑥ K8S Pod优雅下线全解析:从preStop到Eureka下线实战
kubernetes·云计算·优雅下线
会飞的小蛮猪2 天前
K8s-1.29.2二进制安装-第三章(Master组件安装)
云原生·容器·kubernetes