- 配置文件
cat <<END >broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
END
- 创建
kubectl -n zhihui-hr create configmap broker-conf --from-file=./broker-conf
- 先部署rocketmqname
cat <<END> rocketmq-ns.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: rocketmq-ns
namespace: zhihui-hr
labels:
app: rocketmq-ns
spec:
replicas: 1
revisionHistoryLimit: 5
selector:
matchLabels:
app: rocketmq-ns
template:
metadata:
labels:
app: rocketmq-ns
spec:
containers:
- name: rocketmq-nameserver
image: foxiswho/rocketmq:4.8.0
#image: apacherocketmq/rocketmq:latest
command: ["sh","mqnamesrv"]
imagePullPolicy: IfNotPresent
env:
- name: JAVA_OPT_EXT
value: '-Xmx4096m -Xms960m -Xmn1048m'
resources:
requests:
cpu: 1000m
memory: 512Mi
limits:
cpu: 6000m
memory: 4024Mi
ports:
- containerPort: 9876
volumeMounts:
- mountPath: /home/rocketmq/logs
name: namesrvlogs
- mountPath: /etc/localtime
name: timezone
readOnly: true
volumes:
- name: namesrvlogs
emptyDir: {}
- name: namesrvstore
emptyDir: {}
- name: timezone
hostPath:
path: /etc/localtime
---
apiVersion: v1
kind: Service
metadata:
name: rocketmq-ns
namespace: zhihui-hr
spec:
clusterIP: None
ports:
- port: 9876
targetPort: 9876
selector:
app: rocketmq-ns
---
apiVersion: v1
kind: Service
metadata:
name: rocketmq-no
namespace: zhihui-hr
spec:
type: NodePort
ports:
- port: 9876
targetPort: 9876
nodePort: 31211
selector:
app: rocketmq-ns
END
- 再部署 broker,本次使用的是云提供的csi动态存储
cat <<END>broker.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: rocketmq-broker
namespace: zhihui-hr
labels:
app: rocketmq-broker
spec:
replicas: 1
revisionHistoryLimit: 5
selector:
matchLabels:
app: rocketmq-broker
template:
metadata:
labels:
app: rocketmq-broker
spec:
containers:
- name: rocketmq-broker
image: foxiswho/rocketmq:4.8.0
#image: apacherocketmq/rocketmq:latest
command: ["sh","mqbroker", "-n","rocketmq-ns:9876","-c","/home/rocketmq/conf/broker.conf"]
imagePullPolicy: IfNotPresent
env:
- name: JAVA_OPT_EXT
value: '-Xmx4096m -Xms960m -Xmn1048m'
resources:
requests:
memory: 2024Mi
cpu: 1024m
limits:
memory: 6024Mi
cpu: 6000m
securityContext:
privileged: true
runAsUser: 0
ports:
- containerPort: 10909
- containerPort: 10911
volumeMounts:
- mountPath: /home/rocketmq/logs
name: brokerlogs
- mountPath: /home/rocketmq/store
name: brokerstore
- mountPath: /etc/localtime
name: timezone
- mountPath: /home/rocketmq/conf
name: conf
volumes:
- name: brokerlogs
emptyDir: {}
- name: brokerstore
#emptyDir: {}
persistentVolumeClaim:
claimName: oss
- name: timezone
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
- name: conf
configMap:
name: broker-conf
END
- 最后创建 控制台
cat <<END> web-rocketmq.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-ns
namespace: zhihui-hr
labels:
app: web-ns
spec:
replicas: 1
revisionHistoryLimit: 5
selector:
matchLabels:
app: web-ns
template:
metadata:
labels:
app: web-ns
spec:
containers:
- name: web-nameserver
image: apacherocketmq/rocketmq-console:2.0.0
imagePullPolicy: IfNotPresent
env:
- name: JAVA_OPTS
value: '-Drocketmq.namesrv.addr=rocketmq-ns:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false'
resources:
requests:
cpu: 1000m
memory: 512Mi
limits:
cpu: 6000m
memory: 4024Mi
ports:
- containerPort: 8080
volumeMounts:
- mountPath: /etc/localtime
name: timezone
readOnly: true
volumes:
- name: timezone
hostPath:
path: /etc/localtime
---
apiVersion: v1
kind: Service
metadata:
name: web-ns
namespace: zhihui-hr
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 31330
selector:
app: web-ns
END