K8S 搭建 rabbitmq 3.7.17 单节点
注意:这里使用的持久化方案的 local-storage
先在 k8s-node1 上创建一个目录,存放 rabbitmq 的数据
mkdir -p /data/em-rabbitmq
在 k8s-master 上操作
mkidr -p /data/yaml/default/rabbitmq
cd /data/yaml/default/rabbitmq
vi storage.yaml
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: em-rabbitmq-pv
spec:
capacity:
storage: 5Gi
# volumeMode field requires BlockVolume Alpha feature gate to be enabled.
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
local:
path: /data/em-rabbitmq
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- k8s-node1
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: em-rabbitmq
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: local-storage
kubectl apply -f storage.yaml
vi sts.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: em-rabbitmq-config
data:
enabled_plugins: |
[rabbitmq_management,rabbitmq_tracing,rabbitmq_federation,rabbitmq_federation_management,rabbitmq_delayed_message_exchange].
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: em-rabbitmq
spec:
selector:
matchLabels:
app: em-rabbitmq
serviceName: em-rabbitmq
replicas: 1
updateStrategy:
type: RollingUpdate
template:
metadata:
labels:
app: em-rabbitmq
spec:
imagePullSecrets:
- name: harbor
terminationGracePeriodSeconds: 60
containers:
- name: em-rabbitmq
imagePullPolicy: IfNotPresent
image: harbor.junengcloud.com/tmp/rabbitmq:3.7.17-alpine-delayed_message_exchange
env:
- name : TZ
value: "Asia/Shanghai"
- name: RABBITMQ_DEFAULT_USER
value: guest
- name: RABBITMQ_DEFAULT_PASS
value: guest123
resources:
requests:
cpu: 500m
memory: 1024Mi
limits:
cpu: 2000m
memory: 2248Mi
volumeMounts:
- mountPath: /var/lib/rabbitmq
readOnly: false
name: data
- name: config-volume
mountPath: /etc/rabbitmq/enabled_plugins
subPath: path/to/enabled_plugins
- mountPath: /etc/localtime
readOnly: false
name: time-data
- mountPath: /etc/timezone
readOnly: false
name: timezone
ports:
- name: ui
protocol: TCP
containerPort: 15672
- name: amqp
protocol: TCP
containerPort: 5672
volumes:
- name: config-volume
configMap:
name: em-rabbitmq-config
items:
- key: enabled_plugins
path: path/to/enabled_plugins
- name: time-data
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
- name: timezone
hostPath:
path: /etc/timezone
- name: data
persistentVolumeClaim:
claimName: em-rabbitmq
kubectl apply -f sts.yaml
vi svc.yaml
---
apiVersion: v1
kind: Service
metadata:
name: em-rabbitmq
labels:
app: em-rabbitmq
spec:
type: NodePort
selector:
app: em-rabbitmq
ports:
- port: 5672
targetPort: 5672
nodePort: 30073
name: amqp
- port: 15672
targetPort: 15672
nodePort: 30072
name: ui
kubectl apply -f svc.yaml
访问 NodePort, 输入用户名和密码 guest/guest123

用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
相应的命令
(1) 新增一个用户
rabbitmqctl add_user Username Password
(2) 删除一个用户
rabbitmqctl delete_user Username
(3) 修改用户的密码
rabbitmqctl change_password Username Newpassword
(4) 查看当前用户列表
rabbitmqctl list_users

浙公网安备 33010602011771号