以下是部署高可用rabbitmq的yaml文件示例:

apiVersion: v1
kind: Service
metadata:
  name: rabbitmq-ha
spec:
  type: NodePort
  selector:
    app: rabbitmq-ha
  ports:
    - name: amqp
      port: 5672
      targetPort: 5672
      nodePort: 30000
    - name: management
      port: 15672
      targetPort: 15672
      nodePort: 30001

---

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: rabbitmq-ha
spec:
  selector:
    matchLabels:
      app: rabbitmq-ha
  serviceName: rabbitmq-ha
  replicas: 3
  template:
    metadata:
      labels:
        app: rabbitmq-ha
    spec:
      containers:
        - name: rabbitmq-ha
          image: rabbitmq:3.8.22-management-alpine
          ports:
            - name: amqp
              containerPort: 5672
            - name: management
              containerPort: 15672
          env:
            - name: RABBITMQ_ERLANG_COOKIE
              value: "secretcookie"
          volumeMounts:
            - name: rabbitmq-data
              mountPath: /var/lib/rabbitmq
        - name: rabbitmq-init
          image: busybox:1.31.1
          command:
            - sh
            - -c
            - |
              if [ ! -f /var/lib/rabbitmq/.bootstrapped ]; then
                rabbitmq-plugins enable rabbitmq_peer_discovery_k8s
                touch /var/lib/rabbitmq/.bootstrapped
              fi
          volumeMounts:
            - name: rabbitmq-data
              mountPath: /var/lib/rabbitmq
      volumes:
        - name: rabbitmq-data
          persistentVolumeClaim:
            claimName: rabbitmq-pvc
  volumeClaimTemplates:
    - metadata:
        name: rabbitmq-pvc
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 1Gi

这个yaml文件将会创建一个具有3个副本的rabbitmq高可用集群,并在每个节点上暴露5672和15672端口的NodePort服务。您可以根据需要修改nodePort值。

注意,这个yaml文件使用了一个名为rabbitmq_peer_discovery_k8s的插件来实现Kubernetes环境中的节点发现。在执行上述yaml之前,您需要将它添加到您的RabbitMQ镜像中。例如,您可以在Dockerfile中添加以下行:

RUN rabbitmq-plugins enable rabbitmq_peer_discovery_k8s

然后重新构建您的镜像。

kubernetes 12015 在集群中部署高可用rabbitmq采用yaml暴露nodeport

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

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