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

相关推荐
HoweWWW1 小时前
k8s-API 访问控制
云原生·容器·kubernetes
小的~~7 小时前
k8s使用本地docker私服启动自制的flink集群
docker·flink·kubernetes
数据智能老司机8 小时前
Kubernetes从入门到精通系列——外部 DNS 和全局负载均衡
云原生·容器·kubernetes
FLGB9 小时前
Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比
大数据·flink·kubernetes
码上一元10 小时前
消息队列:如何确保消息不会丢失?
kafka·消息队列·rocketmq
petaexpress11 小时前
常用的k8s容器网络模式有哪些?
网络·容器·kubernetes
有你的晚安._1 天前
pod基本概念
kubernetes
Richardlygo1 天前
(k8s)Kubernetes部署Promehteus
云原生·容器·kubernetes
bubble小拾1 天前
RocketMQ实战与集群架构详解
架构·rocketmq·java-rocketmq
炸裂狸花猫1 天前
Kubernetes从零到精通(12-Ingress、Gateway API)
容器·kubernetes·gateway