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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)