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
posted @ 2021-10-09 11:54  klvchen  阅读(740)  评论(0)    收藏  举报