k8s 部署rabbitmq集群 yaml
下面是一个示例的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,你需要根据自己的需求进行配置
原文地址: http://www.cveoy.top/t/topic/hYpk 著作权归作者所有。请勿转载和采集!