欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

K8s 利用docker快速部署RabbitMQ集群

程序员文章站 2024-03-12 17:35:08
...

1.创建容器(所有节点都需要做)

1.1 宿主机环境

kubeadm-1.15.1

kubectl-1.15.1

kubelet-1.15.1

docker-19.03.13

1.2 三台节点配置信息

HOST hostname ip rabbitmq-Name
主机A k8s-master01 192.168.137.10 [email protected]
主机B k8s-master02 192.168.137.20 [email protected]
主机C k8s-master03 192.168.137.21 [email protected]`

1.3创建持久数据目录

mdkir /opt/rabbitmq

1.4 hosts配置,方便rabbitmq集群解析找到对应地址

cd /opt/rabbitmq
sudo vim hosts
#输入
192.168.137.10 k8s-master01 rabbit1
192.168.137.20 k8s-master02 rabbit2
192.168.137.21 k8s-master03 rabbit3

 

2.创建容器并运行(所有节点都需要做)

主要修改hostname、name参数

docker run -d --restart=always --hostname k8s-master01 --net=host --name rabbit1  --log-opt max-size=10m --log-opt max-file=3 -v /opt/rabbitmq:/var/lib/rabbitmq:z  -v /opt/rabbitmq/hosts:/etc/hosts -e RABBITMQ_DEFAULT_USER=user01   -e RABBITMQ_DEFAULT_PASS=password01 -e RABBITMQ_ERLANG_COOKIE='tady test'  rabbitmq:3.6.15-management 
-d
#容器后台运行
--restart=always
#开机自启
--hostname rabbit1
#容器的主机名为 rabbit1,容器内部的hostname
--name rabbit1
#容器名为rabbit39,在宿主机上运行“docker ps”命令时显示的名称
--log-opt max-size=10m
#日志文件单个最大10M
--log-opt max-file=3
#日志文件最多保留3个
-v /data/rabbitmq:/var/lib/rabbitmq:z
#将宿主机目录/data/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。
-v /opt/rabbitmq/hosts:/etc/hosts
#略
-e RABBITMQ_DEFAULT_USER=user01
#设置rabbitmq默认用户为user01
-e RABBITMQ_DEFAULT_PASS=password01
#设置rabbitmq默认密码为password01
-e RABBITMQ_ERLANG_COOKIE='secret cookie here'
#设置rabbitmq的cookie为“secret cookie here”,可以自定义为其他文本,三个容器保持一致即可。
reg.onlymin.com/public/rabbitmq:3.6.15-management
#使用reg.onlymin.com/public/rabbitmq:3.6.15-management这个镜像


3.加入节点(除主节点的其他节点需要做)

3.1以第二台节点为例

在k8s-master02 节点进入容器

docker exec -it rabbit2 /bin/bash

加入集群

rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected]
rabbitmqctl start_app

显示如下信息表示加入成功

K8s 利用docker快速部署RabbitMQ集群

其他节点同上

3.2 查看集群状态

在k8s-master01机器上

docker exec -it rabbit1 /bin/bash
rabbitmqctl cluster_status

显示如下表示节点加入成功

K8s 利用docker快速部署RabbitMQ集群

 

4.可能遇到的故障,可参考集群故障恢复详解http://www.mamicode.com/info-detail-1707257.html

docker exec -it rabbit2 /bin/bash
rabbitmqctl stop
#在一个正常的节点上移除有问题的节点
rabbitmqctl  -n [email protected] forget_cluster_node [email protected]

 

相关标签: K8s