k8s 部署rocketmq

参考:https://www.cnblogs.com/nuomm/p/17652344.html

 

1、创建rocketmq需要的pvc,sc根据实际修改

复制代码
vim rocketmq-pvc.yml

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: rocketmq-pvc
namespace: nmg-test spec: storageClassName:
"nfs-client" accessModes: - ReadWriteOnce resources: requests: storage: 1Gi
复制代码

 

2、部署rocketmqnamesrv

复制代码
vim rocketmq-namesrv.yml

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: rocketmqnamesrv
    k8s.kuboard.cn/layer: cloud
  name: rocketmqnamesrv
  namespace: nmg-test
spec:
  selector:
    matchLabels:
      app: rocketmqnamesrv
  template:
    metadata:
      labels:
        app: rocketmqnamesrv
    spec:
      nodeName: tjgjc-ai13
      containers:
        - command:
            - sh
            - /home/rocketmq/rocketmq-5.3.1/bin/mqnamesrv
          env:
            - name: TZ
              value: Asia/Shanghai
            - name: JAVA_OPT_EXT
              value: '-Duser.home=/home/rocketmq -Xms512M -Xmx512M -Xmn128m'
            - name: autoCreateTopicEnable
              value: 'true'
          image: 'apache/rocketmq:lastest'
          imagePullPolicy: IfNotPresent
          name: rocketmqnamesrv
          volumeMounts:
- mountPath: /home/rocketmq/logs name: rocketmq-pvc volumes: - name: rocketmq-pvc persistentVolumeClaim: claimName: rocketmq-pvc --- apiVersion: v1 kind: Service metadata: name: rocketmqnamesrv namespace: nmg-test spec: ports: - name: namesrvport nodePort: 31376 port: 9876 protocol: TCP targetPort: 9876 selector: app: rocketmqnamesrv type: NodePort
复制代码

3、部署rocketmqbroker

rocketmqbroker部署到K8s上,需要修改brocket的ip,默认是docket内ip,修改为K8s的服务器Ip。采用configmap方式将broker.conf文件挂载出来。

configmap.yaml如下,需要修改brokerIP1 的值为你服务器的Ip。

复制代码
vim rocketmq-config.yml

---
apiVersion: v1
data:
  config: |-
    brokerClusterName = DefaultCluster
    brokerName = broker-c
    brokerId = 0
    deleteWhen = 04
    fileReservedTime = 48
    brokerRole = ASYNC_MASTER
    flushDiskType = ASYNC_FLUSH
    brokerIP1 = 192.168.18.11
kind: ConfigMap
metadata:
  name: roketmqconfig
  namespace: nmg-test
复制代码

rocketmqbroker部署的yaml文件如下:

/home/rocketmq/store是数据目录要挂载

复制代码
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: rocketmqbroker
    k8s.kuboard.cn/layer: cloud
  name: rocketmqbroker
  namespace: nmg-test
spec:
  selector:
    matchLabels:
      app: rocketmqbroker
  template:
    metadata:
      labels:
        app: rocketmqbroker
    spec:
      containers:
        - command:
            - sh
            - /home/rocketmq/rocketmq-5.3.1/bin/mqbroker
            - '-n'
            - 'rocketmqnamesrv:9876'
            - '-c'
            - /home/rocketmq/rocketmq-5.3.1/conf/broker.conf
          env:
            - name: TZ
              value: Asia/Shanghai
            - name: JAVA_OPT_EXT
              value: '-Xms512M -Xmx512M -Xmn128m'
            - name: NAMESRV_ADDR
              value: 'rocketmqnamesrv:9876'
          image: 'apache/rocketmq:lastest'
          imagePullPolicy: IfNotPresent
          name: rocketmqbroker
          volumeMounts:
            - mountPath: /home/rocketmq/rocketmq-5.3.1/conf/broker.conf
              name: rocketmqconfig
              subPath: broker.conf
            - mountPath: /home/rocketmq/store
              name: rocketmq-pvc
      nodeName: tjgjc-ai13
      restartPolicy: Always
      volumes:
        - configMap:
            defaultMode: 420
            items:
              - key: config
                path: broker.conf
            name: roketmqconfig
          name: rocketmqconfig
        - name: rocketmq-pvc
          persistentVolumeClaim: 
            claimName: rocketmq-pvc
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: rocketmqbroker
  name: rocketmqbroker
  namespace: nmg-test
spec:
  ports:
    - name: broker-port
      nodePort: 10911
      port: 10911
      protocol: TCP
      targetPort: 10911
    - name: 7cpk4a
      nodePort: 10912
      port: 10912
      protocol: TCP
      targetPort: 10912
    - name: ykdmnd
      nodePort: 10909
      port: 10909
      protocol: TCP
      targetPort: 10909
  selector:
    app: rocketmqbroker
  sessionAffinity: None
  type: NodePort
复制代码

 

 4、部署rocketmq-dashboard

复制代码
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: rocketmq-dashboard
  name: rocketmq-dashboard
  namespace: nmg-test
spec:
  selector:
    matchLabels:
      app: rocketmq-dashboard
  template:
    metadata:
      labels:
        app: rocketmq-dashboard
    spec:
      nodeName: tjgjc-ai13
      containers:
        - env:
            - name: TZ
              value: Asia/Shanghai
            - name: JAVA_OPTS
              value: >-
                -Drocketmq.namesrv.addr=rocketmqnamesrv:9876
                -Dcom.rocketmq.sendMessageWithVIPChannel=false
                -Drocketmq.config.loginRequired=true
                -Drocketmq.config.dataPath=/rocketmq-dashboard/config
          image: apacherocketmq/rocketmq-dashboard
          imagePullPolicy: IfNotPresent
          name: rocketmq-dashboard
          volumeMounts:
            - name: rocketmq-pvc
              mountPath: /rocketmq-dashboard/config
          livenessProbe:
            tcpSocket:
              port: 8080
      volumes:
        - name: rocketmq-pvc
          persistentVolumeClaim: 
            claimName: rocketmq-pvc
      dnsPolicy: ClusterFirst
      restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    k8s.kuboard.cn/workload: rocketmq-dashboard
  labels:
    app: rocketmq-dashboard
  name: rocketmq-dashboard
  namespace: nmg-test
spec:
  ports:
    - name: port
      nodePort: 20880
      port: 8080
      protocol: TCP
      targetPort: 8080
  selector:
    app: rocketmq-dashboard
  type: NodePort
复制代码

 

5、运行上面的yml文件后访问http://ip:20880

 

posted @   苦逼yw  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示