背景
需要在开发环境部署rocketmq5验证新版本proxy相关的特性,而开发环境没有helm和外网,有k8s的环境
发现网上也没有太多资料,记录一下操作流程
操作流程
- helm库拉取rocketmq5镜像
用的是某个大佬上传的helm库镜像:
## 添加 helm 仓库
helm repo add rocketmq-repo https://helm-charts.itboon.top/rocketmq
helm repo update rocketmq-repo
## 查看镜像
helm search rocketmq
拉取镜像到本地 两个都拉
helm pull itboon/rocketmq
helm pull itboon/rocketmq-cluster
解压
tar -zxf rocketmq.tgz
- 单集群启动测试
进入目录修改value.yaml文件:
clusterName: "rocketmq-helm"
image:
repository: "apache/rocketmq"
pullPolicy: IfNotPresent
tag: "5.3.0"
podSecurityContext:
fsGroup: 3000
runAsUser: 3000
broker:
size:
master: 1
replica: 0
# podSecurityContext: {}
# containerSecurityContext: {}
master:
brokerRole: ASYNC_MASTER
jvm:
maxHeapSize: 256M
# javaOptsOverride: ""
resources:
limits:
cpu: 2
memory: 512Mi
requests:
cpu: 200m
memory: 256Mi
replica:
jvm:
maxHeapSize: 256M
# javaOptsOverride: ""
resources:
limits:
cpu: 4
memory: 512Mi
requests:
cpu: 50m
memory: 256Mi
hostNetwork: false
persistence:
enabled: true
size: 100Mi
#storageClass: "local-storage"
aclConfigMapEnabled: false
aclConfig: |
globalWhiteRemoteAddresses:
- '*'
- 10.*.*.*
- 192.168.*.*
config:
## brokerClusterName brokerName brokerRole brokerId 由内置脚本自动生成
deleteWhen: "04"
fileReservedTime: "48"
flushDiskType: "ASYNC_FLUSH"
waitTimeMillsInSendQueue: "1000"
# aclEnable: true
affinityOverride: {
}
tolerations: []
nodeSelector: {
}
## broker.readinessProbe
readinessProbe:
tcpSocket:
port: main
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 6
nameserver:
replicaCount: 1
jvm:
maxHeapSize: 256M
# javaOptsOverride: ""
resources:
limits:
cpu: 2
memory: 256Mi
ephemeral-storage: 256Mi
requests:
cpu: 100m
memory: 256Mi
ephemeral-storage: 256Mi
persistence:
enabled: false
size: 256Mi
#storageClass: "local-storage"
affinityOverride: {
}
tolerations: []
nodeSelector: {
}
## nameserver.readinessProbe
readinessProbe:
tcpSocket:
port: main
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 6
## nameserver.service
service:
annotations: {
}
type: ClusterIP
proxy:
enabled: true
replicaCount: 1
jvm:
maxHeapSize: 600M
# javaOptsOverride: ""
resources:
limits:
cpu: 2
memory: 512Mi
requests:
cpu: 100m
memory: 256Mi
affinityOverride: {
}
tolerations: []
nodeSelector: {
}
## proxy.readinessProbe
readinessProbe:
tcpSocket:
port: main
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 6
## proxy.service
service:
annotations: {
}
type: ClusterIP
dashboard:
enabled: true
replicaCount: 1
image:
repository: "apacherocketmq/rocketmq-dashboard"
pullPolicy: IfNotPresent
tag: "1.0.0"
auth:
enabled: true
users:
- name: admin
password: admin
isAdmin: true
- name: user01
password: userPass
jvm:
maxHeapSize: 256M
resources:
limits:
cpu: 1
memory: 512Mi
requests:
cpu: 20m
memory: 512Mi
## dashboard.readinessProbe
readinessProbe:
failureThreshold: 6
httpGet:
path: /
port: http
livenessProbe: {
}
service:
annotations: {
}
type: ClusterIP
# nodePort: 31007
ingress:
enabled: false
className: ""
annotations: {
}
# nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/8,124.160.30.50
hosts:
- host: rocketmq-dashboard.example.com
tls: []
# - secretName: example-tls
# hosts:
# - rocketmq-dashboard.example.com
## controller mode is an experimental feature
controllerModeEnabled: false
controller:
enabled: false
jvm:
maxHeapSize: 256M
# javaOptsOverride: ""
resources:
limits:
cpu: 2
memory: 512Mi
requests:
cpu: 100m
memory: 256Mi
persistence:
enabled: true
size: 256Mi
accessModes:
- ReadWriteOnce
## controller.service
service:
annotations: {
}
## controller.config
config:
controllerDLegerGroup: group1
enableElectUncleanMaster: false
notifyBrokerRoleChanged: true
## controller.readinessProbe
readinessProbe:
tcpSocket:
port: main
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 6
helm启动
helm upgrade --install rocketmq \
--namespace rocketmq-demo \
--create-namespace \
--set broker.persistence.enabled="false" \
./rocketmq
3 sc/pv配置
采用的挂载本地的方式设