一、docker-compose部署rabbitmq
version: '3.1'
services:
rabbitmq:
image: rabbitmq:3.8.8-management
restart: always
hostname: rabbitmq-hostname
container_name: rabbitmq
ports:
- 4369:4369
- 5672:5672
- 15672:15672
volumes:
- ./rabbitmq_data:/var/lib/rabbitmq
environment:
TIME_ZONE: Asia/Shanghai
RABBITMQ_ERLANG_COOKIE: sinoeyes
RABBITMQ_NODENAME: nodename
RABBITMQ_DEFAULT_USER: paas
RABBITMQ_DEFAULT_PASS: "123456"
RABBITMQ_DEFAULT_VHOST: uat2_paas
1.推荐为docker容器设置hostname,因为rabbitmq默认使用hostname作为存储数据的节点名,设置hostname可以避免生成随机的节点名,方便追踪数据。RABBITMQ_NODENAME 默认值是: rabbit。
如下图所示
2. RABBITMQ_DEFAULT_USER 和 RABBITMQ_DEFAULT_PASS 用来设置超级管理员的账号和密码,如果不设置,默认都是 guest
3.docker镜像使用像这样 rabbitmq:3.8.3-management 带有后缀 -management的镜像,之前使用没带这个后缀的镜像,网页访问失败。**
二、k8s部署rabbitmq
1、rabbitmq-service.yml
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
labels:
app: rabbitmq
namespace: paas-basic
spec:
selector:
app: rabbitmq-pod
type: NodePort
ports:
- name: erlang-discovery
port: 4369
targetPort: 4369
protocol: TCP
- name: client-communicate
port: 5672
targetPort: 5672
nodePort: 32765
protocol: TCP
- name: management-http
port: 15672
targetPort: 15672
nodePort: 32766
protocol: TCP
- name: server-communicate
port: 25672
targetPort: 25672
protocol: TCP
2、rabbitmq-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq-deploy
namespace: paas-basic
labels:
name: rabbitmq-deploy-label
spec:
replicas: 1
minReadySeconds: 60 # 容器启动创建X秒后服务可用
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 2
maxUnavailable: 0
selector:
matchLabels:
app: rabbitmq-pod
template:
metadata:
labels:
app: rabbitmq-pod
spec:
terminationGracePeriodSeconds: 30 #k8s正确、优雅地关闭应用,等待时间30秒
nodeSelector:
rabbitmq: "true"
hostname: rabbitmq-hostname #设置pod的hostaname,rabbitmq的数据文件会根据hosotname自动生成
containers:
- name: rabbitmq-container
image: rabbitmq:3.8.8-management
imagePullPolicy: IfNotPresent
ports:
- containerPort: 4369
- containerPort: 5672
- containerPort: 15672
- containerPort: 25672
volumeMounts:
- name: rabbitmq-volume
mountPath: /var/lib/rabbitmq
env:
- name: RABBITMQ_ERLANG_COOKIE
value: sinoeyes
- name: RABBITMQ_DEFAULT_USER
value: paas
- name: RABBITMQ_DEFAULT_PASS
value: "123456"
- name: RABBITMQ_DEFAULT_VHOST
value: uat2_paas
volumes:
- name: rabbitmq-volume
hostPath:
path: /home/k8s-1.19.2/paas-basic/rabbitmq/volume
官方参考文档
1.1.1 添加虚拟机
rabbitmqctl add_vhost vhost_one
1.1.2 删除虚拟机
rabbitmqctl delete_vhost vhost_one
1.1.3 查看虚拟机列表
rabbitmqctl list_vhosts
(1) 新增一个用户
rabbitmqctl add_user Username Password
(2) 删除一个用户
rabbitmqctl delete_user Username
(3) 修改用户的密码
rabbitmqctl change_password Username Newpassword
(4) 查看当前用户列表
rabbitmqctl list_users