# 实现RabbitMQ 3.7 在Kubernetes上部署

## 简介
在Kubernetes上部署RabbitMQ 3.7,可以有效管理消息队列服务,提高系统的可靠性和可扩展性。本文将指导您如何在Kubernetes集群中部署RabbitMQ 3.7。

## 步骤
下面是在Kubernetes上部署RabbitMQ 3.7的步骤:

| 步骤 | 操作 |
|----------------------|---------------------------------------------|
| 1. 创建Namespace | 创建一个新的Namespace来存储RabbitMQ的资源 |
| 2. 创建PersistentVolume | 创建PersistentVolume用于持久化存储RabbitMQ的数据 |
| 3. 部署RabbitMQ | 部署RabbitMQ 3.7到Kubernetes集群 |
| 4. 配置Service | 配置Service用于暴露RabbitMQ服务 |
| 5. 部署Management插件 | 部署RabbitMQ Management插件用于管理RabbitMQ |

## 操作步骤

### 1. 创建Namespace
使用以下命令创建一个名为rabbitmq的Namespace:

```bash
kubectl create namespace rabbitmq
```

### 2. 创建PersistentVolume
创建一个名为rabbitmq-pv.yaml的PersistentVolume配置文件,并填写如下内容:

```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: rabbitmq-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: manual
hostPath:
path: /data/rabbitmq
```

然后使用以下命令创建PersistentVolume:

```bash
kubectl create -f rabbitmq-pv.yaml
```

### 3. 部署RabbitMQ
创建一个名为rabbitmq-deployment.yaml的RabbitMQ Deployment配置文件,并填写如下内容:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq
spec:
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
containers:
- name: rabbitmq
image: rabbitmq:3.7-management
ports:
- containerPort: 5672
- containerPort: 15672
volumeMounts:
- name: rabbitmq-data
mountPath: /var/lib/rabbitmq
volumes:
- name: rabbitmq-data
persistentVolumeClaim:
claimName: rabbitmq-pvc
```

创建一个名为rabbitmq-svc.yaml的Service配置文件,并填写如下内容:

```yaml
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
spec:
selector:
app: rabbitmq
ports:
- port: 5672
targetPort: 5672
- port: 15672
targetPort: 15672
type: NodePort
```

然后使用以下命令创建Deployment和Service:

```bash
kubectl create -f rabbitmq-deployment.yaml
kubectl create -f rabbitmq-svc.yaml
```

### 4. 部署Management插件
使用以下命令创建一个Job来部署RabbitMQ Management插件:

```bash
kubectl create job --from=cronjob/rabbitmq rabbitmq-management
```

完成以上步骤后,您就成功在Kubernetes上部署了RabbitMQ 3.7,并且配置了Management插件用于管理RabbitMQ服务。

希望这篇文章能够帮助您理解如何实现“rabbitmq3.7 k8s”。如果有任何疑问或困难,请随时与我联系。祝您在学习和工作中取得成功!