k8s部署rabbitmq以及数据迁移
rabbitmq日志及存储数据磁盘空间在使用过程中如果不及时消费或者数据量过多,会导致磁盘空间使用率日益增高,严重时可能会发生rabbitmq服务器宕机。一旦发现rabbitmq磁盘空间不够用,或者发生服务器宕机,重启服务失败,此时就需要更大的磁盘来存储rabbitmq数据,才能保证服务正常启动。原账号能够登录成功,说明数据迁移成功,因为如果数据迁移失败,用户数据会丢失,原账号是登录不成功的。文件
docker pull rabbitmq:3.9.28-management
1.部署模板
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
spec:
ports:
- name: amqp
port: 5672
targetPort: 5672
- name: management
port: 15672
targetPort: 15672
selector:
app: rabbitmq
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rabbitmq
spec:
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
imagePullSecrets:
- name: harbor
containers:
- name: rabbitmq
image: rabbitmq:3.9.28-management
ports:
- containerPort: 5672
- containerPort: 15672
resources:
limits:
cpu: 1024m
memory: 2048Mi
requests:
cpu: 100m
memory: 200Mi
livenessProbe:
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 3
tcpSocket:
port: 5672
readinessProbe:
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 3
tcpSocket:
port: 5672
env:
- name: RABBITMQ_DEFAULT_USER
value: "guest"
- name: RABBITMQ_DEFAULT_PASS
value: "guest"
volumeMounts:
- name: data
mountPath: /var/lib/rabbitmq/
- name: localtime
readOnly: true
mountPath: /etc/localtime
volumes:
- name: data
hostPath:
type: DirectoryOrCreate
path: /data/znst/rabbitmq
- name: localtime
hostPath:
type: File
path: /etc/localtime
nodeName: gem-yxyw-t-c02
暴露端口的service
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
spec:
type: NodePort
ports:
- name: rabbitmq
port: 5672
targetPort: 5672
nodePort: 30004
- name: management
port: 15672
targetPort: 15672
nodePort: 30005
selector:
app: rabbitmq
实际部署
apiVersion: v1
kind: Service
metadata:
name: znst-rabbitmq-test
spec:
type: NodePort
ports:
- name: rabbitmq
port: 5672
targetPort: 5672
nodePort: 30004
- name: management
port: 15672
targetPort: 15672
nodePort: 30005
selector:
app: znst-rabbitmq-test
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: znst-rabbitmq-test
spec:
replicas: 1
selector:
matchLabels:
app: znst-rabbitmq-test
template:
metadata:
labels:
app: znst-rabbitmq-test
spec:
imagePullSecrets:
- name: harbor
containers:
- name: rabbitmq
image: rabbitmq:3.9.28-management
ports:
- containerPort: 5672
- containerPort: 15672
env:
- name: RABBITMQ_DEFAULT_USER
value: "guest"
- name: RABBITMQ_DEFAULT_PASS
value: "Gd*(53#SALEMQ"
resources:
limits:
cpu: 1024m
memory: 2048Mi
requests:
cpu: 100m
memory: 200Mi
livenessProbe:
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 3
tcpSocket:
port: 5672
readinessProbe:
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 3
tcpSocket:
port: 5672
volumeMounts:
- name: data
mountPath: /var/lib/rabbitmq/
- name: localtime
readOnly: true
mountPath: /etc/localtime
volumes:
- name: data
hostPath:
type: DirectoryOrCreate
path: /data/znst/rabbitmq
- name: localtime
hostPath:
type: File
path: /etc/localtime
nodeName: cn-shenzhen.10.0.21.33
2.服务连接
http://10.0.21.33:30005/ web登录地址
http://10.0.21.33:30004 服务实际调用地址
host: 10.0.21.33
port: 30004
username: guest
password: Gd*(53#SALEMQ
3.rabbitmq新增用户:进入容器或者pod操作
如果想要跨机器登录RabbtiMQ的web管理平台,就需要新建用户,而不能用默认的用户guest。
下面记录一下新增用户的步骤:
1).添加新用户,用户名为root,密码为123456
rabbitmqctl add_user root 123456
2).为该用户分配所有权限
rabbitmqctl set_permissions -p / root “." ".” “.*”
3).设置该用户为管理员角色
rabbitmqctl set_user_tags root administrator
现在就可以用root用户在其他机器上登录RabbitMQ的web管理平台了。
番外篇数据迁移
cd /data/znst/
tar -zcvf rabbitmq.tar.gz rabbitmq
登陆目标主机拷贝过去数据目录执行
tar -xvf rabbitmq.tar.gz 覆盖原有的数据目录,重启服务
4.RabbitMQ数据迁移
rabbitmq日志及存储数据磁盘空间在使用过程中如果不及时消费或者数据量过多,会导致磁盘空间使用率日益增高,严重时可能会发生rabbitmq服务器宕机。一旦发现rabbitmq磁盘空间不够用,或者发生服务器宕机,重启服务失败,此时就需要更大的磁盘来存储rabbitmq数据,才能保证服务正常启动。为了保证数据不丢失,如何迁移数据显得尤为重要,以下为数据迁移步骤,请按顺序执行。
一、 rabbitMq管理界面监控数据
二、 默认存储路径
MNESIA_BASE 后端存储目录,默认为/var/lib/rabbitmq/mnesia
LOG_BASE 日志目录,默认为/var/log/rabbitmq/
注意:如果部署服务器时修改过rabbitmq服务,需要到对应的目录下拷贝存储数据和日志
三、拷贝原有的存储数据和日志文件
拷贝数据文件,通过文件传输工具,把文件下载下来备用
cd /var/lib/rabbitmq/mnesia
拷贝日志文件,通过文件传输工具,把文件下载下来备用
cd /var/log/rabbitmq/
四、新建日志和文件存储位置,并将原数据上传到新建的文件目录内
#进入数据存储路径
cd /data/rabbitmq/data
#上传数据文件
#进入日志存储路径
cd /data/rabbitmq/data
#上传日志存储文件
文件上传后,需要对目录的权限进行修改,如果不进行修改,会导致服务重启失败
chown -R rabbitmq:rabbitmq /data/rabbitmq
五、修改rabbitmq配置文件中日志文件和数据文件的存储路径
#进入目录
cd /etc/rabbitmq
#打开文件
vim rabbitmq-env.conf
#添加以下内容
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/log
六、重启rabbitmq服务
systemctl restart rabbitmq-server.service
七、登录管理界面,查看数据是否正常
原账号能够登录成功,说明数据迁移成功,因为如果数据迁移失败,用户数据会丢失,原账号是登录不成功的
通过图形界面导如导出队列,相当于导出导入表结构
Overview》Export definitions 导出
Overview》Import definitions 导入
更多推荐
所有评论(0)