kubernetes集群安装rocketmq 详细步骤
时间: 2025-02-09 07:14:54 浏览: 48
在Kubernetes集群上安装RocketMQ的详细步骤如下:
### 1. 准备工作
确保你已经有一个运行中的Kubernetes集群,并且已经安装了`kubectl`命令行工具。
### 2. 创建命名空间
首先,创建一个新的命名空间来隔离RocketMQ的资源和组件。
```bash
kubectl create namespace rocketmq
```
### 3. 创建持久化存储
为了确保RocketMQ的数据在容器重启后依然存在,需要创建持久化存储卷(PVC)。
```yaml
# pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rocketmq-pvc
namespace: rocketmq
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
```
应用配置:
```bash
kubectl apply -f pvc.yaml
```
### 4. 部署NameServer
创建NameServer的Deployment和Service。
```yaml
# nameserver-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: rocketmq-nameserver
namespace: rocketmq
spec:
replicas: 1
selector:
matchLabels:
app: rocketmq-nameserver
template:
metadata:
labels:
app: rocketmq-nameserver
spec:
containers:
- name: rocketmq-nameserver
image: rocketmqinc/rocketmq-nameserver:latest
ports:
- containerPort: 9876
volumeMounts:
- name: rocketmq-storage
mountPath: /home/rocketmq/store
volumes:
- name: rocketmq-storage
persistentVolumeClaim:
claimName: rocketmq-pvc
---
apiVersion: v1
kind: Service
metadata:
name: rocketmq-nameserver
namespace: rocketmq
spec:
ports:
- port: 9876
targetPort: 9876
selector:
app: rocketmq-nameserver
```
应用配置:
```bash
kubectl apply -f nameserver-deployment.yaml
```
### 5. 部署Broker
创建Broker的Deployment和Service。
```yaml
# broker-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: rocketmq-broker
namespace: rocketmq
spec:
replicas: 1
selector:
matchLabels:
app: rocketmq-broker
template:
metadata:
labels:
app: rocketmq-broker
spec:
containers:
- name: rocketmq-broker
image: rocketmqinc/rocketmq-broker:latest
ports:
- containerPort: 10909
- containerPort: 10911
env:
- name: NAMESRV_ADDR
value: "rocketmq- name: rocketmq-storage
mountPath: /home/rocketmq/store
volumes:
- name: rocketmq-storage
persistentVolumeClaim:
claimName: rocketmq-pvc
---
apiVersion: v1
kind: Service
metadata:
name: rocketmq-broker
namespace: rocketmq
spec:
ports:
- port: 10909
targetPort: 10909
- port: 10911
targetPort: 10911
selector:
app: rocketmq-broker
```
应用配置:
```bash
kubectl apply -f broker-deployment.yaml
```
### 6. 部署Console
创建一个Console的Deployment和Service,以便通过Web界面管理RocketMQ。
```yaml
# console-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: rocketmq-console
namespace: rocketmq
spec:
replicas: 1
selector:
matchLabels:
app: rocketmq-console
template:
metadata:
labels:
app: rocketmq-console
spec:
containers:
- name: rocketmq-console
image: styletang/rocketmq-console-ng:latest
ports:
- containerPort: 8080
env:
- name: JAVA_OPTS
value: "-Drocketmq.namesrv.addr=rocketmq-nameserver:9876"
---
apiVersion: v1
kind: Service
metadata:
name: rocketmq-console
namespace: rocketmq
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30080
selector:
app: rocketmq-console
```
应用配置:
```bash
kubectl apply -f console-deployment.yaml
```
### 7. 验证安装
通过浏览器访问`http://<node-ip>:30080`,你应该能够看到RocketMQ的Web管理界面。
阅读全文
相关推荐
















