k8s使用Helm部署RabbitMQ消息队列
Helm部署RabbitMQ消息队列集群
·
k8s使用Helm部署RabbitMQ消息队列
Helm添加仓库
helm add repo bitnami https://charts.bitnami.com/bitnami
查看可使用的RabbitMQ的版本
[root@k8s-master-1 data]# helm search repo rabbitmq
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/rabbitmq 8.21.0 3.9.5 Open source message broker software that implem...
bitnami/rabbitmq-cluster-operator 0.1.1 1.8.1 The RabbitMQ Cluster Kubernetes Operator automa...
拉取指定版本
[root@k8s-master-1 rabbitmq]# helm pull bitnami/rabbitmq --version=8.21.0
[root@k8s-master-1 rabbitmq]# ls
rabbitmq-8.21.0.tgz
解压文件
[root@k8s-master-1 rabbitmq]# tar -xf rabbitmq-8.21.0.tgz
[root@k8s-master-1 rabbitmq]# ls
rabbitmq rabbitmq-8.21.0.tgz
[root@k8s-master-1 rabbitmq]# tree rabbitmq
rabbitmq
├── Chart.yaml # 这个chart的版本信息
├── OWNERS
├── README.md
├── templates # 模板文件
│ ├── alerts.yaml
│ ├── configmap.yaml
│ ├── _helpers.tpl
│ ├── ingress.yaml
│ ├── NOTES.txt # 这个chart的信息
│ ├── pdb.yaml
│ ├── rolebinding.yaml
│ ├── role.yaml
│ ├── secret.yaml
│ ├── serviceaccount.yaml
│ ├── service-discovery.yaml
│ ├── servicemonitor.yaml
│ ├── service.yaml
│ └── statefulset.yaml
└── values.yaml # 配置全局变量或者一些参数
1 directory, 18 files
创建NameSpace
kubectl create rabbitmq
创建PV&PVC
[root@k8s-master-1 emqx]# vi persistent.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: rabbitmq-pv
labels:
type: rabbitmq-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs
nfs:
path: "/rabbitmq"
server: 127.0.0.1
readOnly: false
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rabbitmq-pvc
namespace: rabbitmq
spec:
storageClassName: nfs
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
运行rabbitmq集群
helm upgrade --install \
--set auth.username=your_user \ # 账号
--set auth.password=your_password \ # 密码
--set resources.limits.cpu=1 \
--set resources.limits.memory=2Gi \
--set resources.requests.cpu=1 \
--set resources.requests.memory=2Gi \
--set persistence.enable=true \
--set persistence.storageClass=nfs \
--set persistence.accessMode=ReadWriteMany \
--set persistence.existingClaim=rabbitmq-pvc \
--set persistence.size=10Gi \
--set service.type=NodePort \
--set service.nodePort=31670 \
--set service.tlsNodePort=31671
--set service.distNodePort=31672 \
--set service.managerNodePort=31673 \
--set service.metricsNodePort=31674 \
--set service.epmdNodePort=31675 \
rabbitmq rabbitmq \
--namespace=rabbitmq
查看集群
kubectl get svc,pod,ingress -n rabbitmq
补充
删除rabbitmq集群
helm -n rabbitmq uninstall rabbitmq
弹性伸缩
templates模板文件夹下面创建hpa.yaml
[root@k8s-master-1 templates]# vi hpa.yaml
{{- if .Values.autoscaling.enabled }}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "rabbitmq.fullname" . }}-hpa
labels:
app: {{ include "rabbitmq.fullname" . }}-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: StatefulSet
name: {{ include "rabbitmq.fullname" . }}
minReplicas: {{ .Values.autoscaling.minReplicas }}
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics:
{{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}
编辑value.yaml,在最后添加如下代码
autoscaling:
enabled: true
minReplicas: 1
maxReplicas: 5
targetCPUUtilizationPercentage: 80
更新rabbitmq集群
helm upgrade --install \
--set auth.username=your_user \ # 账号
--set auth.password=your_password\ # 密码
--set resources.limits.cpu=1 \
--set resources.limits.memory=2Gi \
--set resources.requests.cpu=1 \
--set resources.requests.memory=2Gi \
--set persistence.enable=true \
--set persistence.storageClass=nfs \
--set persistence.accessMode=ReadWriteMany \
--set persistence.existingClaim=rabbitmq-pvc \
--set persistence.size=10Gi \
--set service.type=NodePort \
--set service.nodePort=31670 \
--set service.tlsNodePort=31671
--set service.distNodePort=31672 \
--set service.managerNodePort=31673 \
--set service.metricsNodePort=31674 \
--set service.epmdNodePort=31675 \
rabbitmq rabbitmq \
--namespace
更多推荐
已为社区贡献1条内容
所有评论(0)