k8s kubesphere 部署 rocketmq

文章详细描述了如何在Kubernetes中使用Kubesphere部署RocketMQ的控制台和broker节点,包括配置文件、服务端口以及访问可视化界面的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

控制台配置

即可视化界面

kind: Deployment
apiVersion: apps/v1
metadata:
  name: rocketmq-console
  namespace: your-namespace
  labels:
    app: rocketmq-console
  annotations:
    deployment.kubernetes.io/revision: '3'
    kubesphere.io/creator: zhangsan
    kubesphere.io/description: rocketmq可视化服务
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rocketmq-console
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: rocketmq-console
    spec:
      volumes:
        - name: host-time
          hostPath:
            path: /etc/localtime
            type: ''
      containers:
        - name: rocketmq-console
          image: 'styletang/rocketmq-console-ng:1.0.0'
          ports:
            - name: http-8080
              containerPort: 8080
              protocol: TCP
          env:
            - name: JAVA_OPTS
              value: >-
                -Drocketmq.namesrv.addr=host:9876
                -Dcom.rocketmq.sendMessageWithVIPChannel=false
          resources:
            limits:
              cpu: '2'
              memory: 4000Mi
            requests:
              cpu: 10m
              memory: 10Mi
          volumeMounts:
            - name: host-time
              readOnly: true
              mountPath: /etc/localtime
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      serviceAccountName: default
      serviceAccount: default
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

kubesphere配置
在这里插入图片描述

broker节点配置

k8s配置

kind: Deployment
apiVersion: apps/v1
metadata:
  name: rocketmq-broker
  namespace: your-namespace
  labels:
    app: rocketmq-broker
  annotations:
    deployment.kubernetes.io/revision: '7'
    kubesphere.io/alias-name: broker
    kubesphere.io/creator: zhangsan
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rocketmq-broker
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: rocketmq-broker
      annotations:
        logging.kubesphere.io/logsidecar-config: '{}'
    spec:
      volumes:
        - name: host-time
          hostPath:
            path: /etc/localtime
            type: ''
        - name: volume-nude2u
          configMap:
            name: rocket-conf
            items:
              - key: broker.conf
                path: broker.conf
            defaultMode: 420
      containers:
        - name: rocketmq-broker
          image: 'rocketmqinc/rocketmq:4.3.2'
          command:
            - sh
          args:
            - mqbroker
            - '-c'
            - /opt/rocketmq-4.3.2/conf/broker.conf
          ports:
            - name: tcp-10909
              containerPort: 10909
              protocol: TCP
            - name: tcp-10911
              containerPort: 10911
              protocol: TCP
          env:
            - name: NAMESRV_ADDR
              value: 'host:9876'
          resources:
            limits:
              cpu: '2'
              memory: 4000Mi
            requests:
              cpu: 10m
              memory: 10Mi
          volumeMounts:
            - name: host-time
              readOnly: true
              mountPath: /etc/localtime
            - name: volume-nude2u
              readOnly: true
              mountPath: /opt/rocketmq-4.3.2/conf/broker.conf
              subPath: broker.conf
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      serviceAccountName: default
      serviceAccount: default
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

kubesphere界面配置
在这里插入图片描述
在这里插入图片描述

nameserver配置

yaml文件

kind: Deployment
apiVersion: apps/v1
metadata:
  name: rocketmq
  namespace: your-namespace
  labels:
    app: rocketmq
  annotations:
    deployment.kubernetes.io/revision: '4'
    kubesphere.io/alias-name: nameserver
    kubesphere.io/creator: zhangsan
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rocketmq
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: rocketmq
      annotations:
        kubesphere.io/restartedAt: '2023-10-20T03:11:56.869Z'
    spec:
      volumes:
        - name: host-time
          hostPath:
            path: /etc/localtime
            type: ''
      containers:
        - name: rocketmq-nameserver
          image: 'rocketmqinc/rocketmq:4.3.2'
          command:
            - sh
          args:
            - mqnamesrv
          ports:
            - name: tcp-9876
              containerPort: 9876
              protocol: TCP
          resources:
            limits:
              cpu: '2'
              memory: 4000Mi
            requests:
              cpu: 10m
              memory: 10Mi
          volumeMounts:
            - name: host-time
              readOnly: true
              mountPath: /etc/localtime
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      serviceAccountName: default
      serviceAccount: default
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

kubesphere
在这里插入图片描述
创建nameserver服务
在这里插入图片描述
创建console-svc
在这里插入图片描述
完成。访问可视化界面,就是你console-svc的服务地址
在这里插入图片描述

### 部署 RocketMQ 4.9 版本到 Kubernetes 的方法 #### 准备工作 为了成功部署 RocketMQ 4.9 到 Kubernetes,需先准备必要的配置文件和环境设置。确保已安装并配置好 `kubectl` 和集群访问权限。 #### 创建命名空间 创建专门用于运行 RocketMQ 实例的命名空间可以更好地管理资源和服务发现。 ```bash kubectl create namespace rocketmq-system ``` #### 定义持久化存储类 定义适合 RocketMQ 使用的 PersistentVolumeClaim (PVC),这里采用 NFS 类型作为示例[^3]: ```yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: rocketmq-nfs-storage namespace: wiseco provisioner: rocketmq/nfs reclaimPolicy: Retain ``` 注意:上述 YAML 文件中的 `namespace` 字段应根据实际情况调整至目标命名空间。 #### 修改 Broker 资源清单 编辑官方提供的 CRD 文件,在适当位置加入自定义参数以适应特定需求。对于 RocketMQ v5.x 及之后版本,可以通过命令行工具修改 YAML 文件来指定命名空间[^1]: ```bash sed -i 'N;8 a \ namespace: rocketmq' deploy/crds/rocketmq.apache.org_brokers.yaml ``` 然而针对 RocketMQ 4.9 版本,则可能需要手动下载对应版本的 Helm Chart 或 Operator 并按照其文档指引操作。 #### 测试消息发送接收功能 完成部署后,进入 Pod 内部验证消息传递流程是否顺畅。通过设置环境变量指向 Name Server 地址,并执行生产者与消费者脚本来检验整个系统的连通性和稳定性[^4]: ```bash export NAMESRV_ADDR=rocketmq-svc:9876 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer ``` 如果能够顺利完成生产和消费动作,则说明部署成功;否则建议排查网络连接、服务端口映射等方面的问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值