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

相关推荐
Gold Steps.1 小时前
OpenEBS — 云原生 CNS 高性能存储
云原生·kubernetes·存储
瑶山1 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard
广州中轴线8 小时前
OpenStack on Kubernetes 生产部署实战(十三)
容器·kubernetes·openstack
切糕师学AI9 小时前
Helm Chart 是什么?
云原生·kubernetes·helm chart
广州中轴线11 小时前
OpenStack on Kubernetes 生产部署实战(十七)
容器·kubernetes·openstack
陈桴浮海1 天前
Kustomize实战:从0到1实现K8s多环境配置管理与资源部署
云原生·容器·kubernetes
张小凡vip1 天前
Kubernetes--k8s中部署redis数据库服务
redis·kubernetes
Hello.Reader1 天前
Flink Kubernetes HA(高可用)实战原理、前置条件、配置项与数据保留机制
贪心算法·flink·kubernetes
洛豳枭薰1 天前
消息队列关键问题描述
kafka·rabbitmq·rocketmq
ShiLiu_mtx1 天前
k8s - 7
云原生·容器·kubernetes