下面是一个示例的Kubernetes部署RabbitMQ集群的YAML文件:

---
apiVersion: v1
kind: Service
metadata:
  name: rabbitmq-service
spec:
  selector:
    app: rabbitmq
  ports:
    - name: rabbitmq
      protocol: TCP
      port: 5672
    - name: rabbitmq-mgmt
      protocol: TCP
      port: 15672
  type: LoadBalancer

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: rabbitmq
spec:
  serviceName: rabbitmq-service
  replicas: 3
  selector:
    matchLabels:
      app: rabbitmq
  template:
    metadata:
      labels:
        app: rabbitmq
    spec:
      containers:
        - name: rabbitmq
          image: rabbitmq:3.8.11-management
          ports:
            - containerPort: 5672
              protocol: TCP
            - containerPort: 15672
              protocol: TCP
          env:
            - name: RABBITMQ_ERLANG_COOKIE
              value: "mysecretcookie"
          volumeMounts:
            - name: rabbitmq-data
              mountPath: /var/lib/rabbitmq
      volumes:
        - name: rabbitmq-data
          persistentVolumeClaim:
            claimName: rabbitmq-pvc

这个YAML文件定义了一个包含3个副本的RabbitMQ集群,并创建了一个LoadBalancer类型的Service,用于外部访问RabbitMQ。每个RabbitMQ容器都使用了RabbitMQ官方提供的带有管理插件的镜像,并指定了RABBITMQ_ERLANG_COOKIE环境变量用于集群内部通信的认证。

你可以将以上的YAML代码保存到一个文件中(例如rabbitmq.yaml),然后使用以下命令部署RabbitMQ集群:

kubectl apply -f rabbitmq.yaml

注意,你需要有一个可用的持久化存储卷(PersistentVolume)和持久化存储卷声明(PersistentVolumeClaim),用于保存RabbitMQ的数据。在上面的示例中,我们使用了名为rabbitmq-pvc的PersistentVolumeClaim,你需要根据自己的需求进行配置

k8s 部署rabbitmq集群 yaml

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

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