Kubernetes 1.20.15 高可用 RabbitMQ 3.8.2 部署指南:NodePort 暴露、密码设置和 ConfigMap 挂载
以下是部署高可用 RabbitMQ 3.8.2 的步骤:
- 创建 RabbitMQ 的 namespace
apiVersion: v1
kind: Namespace
metadata:
name: rabbitmq
- 创建 RabbitMQ 的 configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: rabbitmq-config
namespace: rabbitmq
data:
rabbitmq.conf: |
loopback_users.guest = false
listeners.tcp.default = 5672
management.tcp.port = 15672
enabled_plugins: |
[rabbitmq_management].
- 创建 RabbitMQ 的 StatefulSet
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rabbitmq
namespace: rabbitmq
spec:
serviceName: rabbitmq
replicas: 2
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
containers:
- name: rabbitmq
image: rabbitmq:3.8.2-management-alpine
env:
- name: RABBITMQ_ERLANG_COOKIE
value: 'rabbitmq-cookie'
- name: RABBITMQ_DEFAULT_USER
value: 'admin'
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: rabbitmq-secret
key: password
ports:
- name: amqp
containerPort: 5672
- name: management
containerPort: 15672
volumeMounts:
- name: rabbitmq-config-volume
mountPath: /etc/rabbitmq
volumes:
- name: rabbitmq-config-volume
configMap:
name: rabbitmq-config
volumeClaimTemplates:
- metadata:
name: rabbitmq-data
spec:
accessModes: ['ReadWriteOnce']
storageClassName: 'standard'
resources:
requests:
storage: 1Gi
- 创建 RabbitMQ 的 Service
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
namespace: rabbitmq
spec:
ports:
- name: amqp
port: 5672
targetPort: 5672
- name: management
port: 15672
targetPort: 15672
selector:
app: rabbitmq
type: NodePort
- 创建 RabbitMQ 的 Secret
apiVersion: v1
kind: Secret
metadata:
name: rabbitmq-secret
namespace: rabbitmq
type: Opaque
data:
password: base64-encoded-password
其中,base64-encoded-password 是通过 base64 编码后的 RabbitMQ 密码。
完成上述步骤后,就可以在 Kubernetes 集群中部署高可用 RabbitMQ 3.8.2,并暴露 NodePort,设置密码,使用 ConfigMap 挂载方式。
原文地址: https://www.cveoy.top/t/topic/na5v 著作权归作者所有。请勿转载和采集!