以下是在 Kubernetes 1.20.15 中部署高可用 RabbitMQ 3.8.2 集群的步骤:

  1. 创建一个 ConfigMap 来存储 RabbitMQ 配置文件:
apiVersion: v1
kind: ConfigMap
metadata:
  name: rabbitmq-config
data:
  rabbitmq.conf: |
    listeners.tcp.default = 5672
    cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s
    cluster_formation.k8s.host = kubernetes.default.svc.cluster.local
    cluster_formation.k8s.address_type = hostname
    cluster_formation.node_cleanup.interval = 10
    log.file.level = debug
    log.console.level = debug
    log.file.dir = /var/log/rabbitmq
    log.file.name = rabbitmq.log
  1. 创建一个 StatefulSet 来部署 RabbitMQ 集群:
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: rabbitmq
spec:
  replicas: 3
  serviceName: rabbitmq
  selector:
    matchLabels:
      app: rabbitmq
  template:
    metadata:
      labels:
        app: rabbitmq
    spec:
      containers:
        - name: rabbitmq
          image: rabbitmq:3.8.2
          env:
            - name: RABBITMQ_DEFAULT_USER
              value: 'admin'
            - name: RABBITMQ_DEFAULT_PASS
              value: 'password'
          ports:
            - containerPort: 5672
              name: rabbitmq
          volumeMounts:
            - name: rabbitmq-config
              mountPath: /etc/rabbitmq/
      volumes:
        - name: rabbitmq-config
          configMap:
            name: rabbitmq-config
  volumeClaimTemplates:
    - metadata:
        name: rabbitmq-data
      spec:
        accessModes: [ 'ReadWriteOnce' ]
        resources:
          requests:
            storage: 10Gi
  1. 创建一个 Service 来暴露 RabbitMQ 集群的 NodePort:
apiVersion: v1
kind: Service
metadata:
  name: rabbitmq
spec:
  type: NodePort
  selector:
    app: rabbitmq
  ports:
    - port: 5672
      targetPort: 5672
      nodePort: 30001
  1. 部署 RabbitMQ 集群:
kubectl apply -f rabbitmq-config.yaml
kubectl apply -f rabbitmq-statefulset.yaml
kubectl apply -f rabbitmq-service.yaml

现在,你已经成功地在 Kubernetes 中部署了一个高可用的 RabbitMQ 3.8.2 集群,并暴露了一个 NodePort,同时设置了密码并使用 ConfigMap 挂载了配置文件。

Kubernetes 1.20.15 上部署高可用 RabbitMQ 3.8.2 集群:NodePort 暴露、密码设置及 ConfigMap 配置文件

原文地址: https://www.cveoy.top/t/topic/na5D 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录