docker k8s 部署 rocketmq

本文介绍如何使用Docker和Kubernetes部署RocketMQ消息中间件。详细展示了通过Docker运行NameServer、Broker及Dashboard的方法,并提供了Kubernetes环境下创建PVC、Deployment及Service的具体配置。
该文章已生成可运行项目,

docker 和 k8s 部署 rocketmq

1. docker部署

docker run -d -v /u01/data/namesrv/logs:/home/rocketmq/logs --name rmqnamesrv -p 9876:9876 apacherocketmq/rocketmq:4.5.0-alpine sh mqnamesrv

docker run -d -v /u01/data/broker/logs:/home/rocketmq/logs 
              -v /u01/data/broker/store:/home/rocketmq/store --name rmqbroker --link rmqnamesrv:namesrv 
              -e "NAMESRV_ADDR=namesrv:9876" 
              -p 10909:10909 -p 10911:10911 -p 10912:10912 apacherocketmq/rocketmq:rocketmq:4.5.0-alpine sh mqbroker


docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=10.0.1.56:9876" -p 6765:8080 -t apacherocketmq/rocketmq-dashboard:latest

2. k8s部署
1. 通过storgeclass创建两个备用pvc

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    volume.beta.kubernetes.io/storage-provisioner: fuseim.pri/ifs
  name: rocketmqpv
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: managed-nfs-storage

---  
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    volume.beta.kubernetes.io/storage-provisioner: fuseim.pri/ifs
  name: mqnamepv
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: managed-nfs-storage

  1. 创建deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: rocketmq
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rocketmq  
  template:
    metadata:
     labels:
       app: rocketmq
    spec:
      containers:
        - name: broker
          image: hub.aosccs.com.cn:8888/library/rocketmq:4.5.0-alpine
          command: ["sh","mqbroker", "-n","localhost:9876"]
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 10909
            - containerPort: 10911
          volumeMounts:
            - mountPath: /home/rocketmq/logs
              name: rocketmqdata
            - mountPath: /home/rocketmq/store
              name: rocketmqdata
        - name: namesrv
          image: hub.aosccs.com.cn:8888/library/rocketmq:4.5.0-alpine
          command: ["sh","mqnamesrv"]
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 9876
          volumeMounts:
            - mountPath: /home/rocketmq/logs
              name: mqnamesrv
        - name: dashboard
          image: hub.aosccs.com.cn:8888/library/rocketmq-dashboard:latest
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8080       
          env:
            - name: JAVA_OPTS
              value: -Drocketmq.namesrv.addr=localhost:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false                       
      volumes:
      - name: rocketmqdata
        persistentVolumeClaim:
          claimName: rocketmqpv     
      - name: mqnamesrv
        persistentVolumeClaim:
          claimName: mqnamepv                            


3. 创建svc,暴露端口

apiVersion: v1
kind: Service
metadata:
  labels:
    app: rocketmq
  name: console-service
spec:
  ports:
  - nodePort: 31765
    port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    app: rocketmq
  type: NodePort
本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值