docker搭建minio集群,集群分享文件URL踩坑问题

一、环境准备

3台机器,Ip地址依次为IP1,IP2,IP3

二、设置服务器时间同步

Minio集群需要各个节点的时间保持同步,使用NTP作为时间同步服务,这里以Minio-1(IP1)为上游服务器,其它2个节点为下游服务器,做时间节点同步

1、Minio-1 服务器安装NTP
(1)安装ntp

yum install ntp ntpdate –y

(2) 启动ntp服务

systemctl start ntpd

(3)服务端修改配置文件 /etc/ntp.conf
docker搭建minio集群,集群分享文件URL踩坑问题_第1张图片

server 127.127.1.1
fudge 127.127.1.1 stratum 10 

(4)重启ntp服务

systemctl restart ntpd

(5)查看ntp状态

ntpq -p

(6)设置开机启动

systemctl enable ntpd

2、其它下游服务器做时间同步,Minio-2(IP2)、Minio-3(IP3) 以下操作需要在所有下游服务器操作
(1)安装ntp

yum install ntp ntpdate –y

(2)手动同步一次时间

/usr/sbin/ntpdate -u IP1

(3)修改配置文件(/etc/ntp.conf)

docker搭建minio集群,集群分享文件URL踩坑问题_第2张图片

restrict IP1 nomodify notrap noquery

server IP1
fudge IP1 stratum 10

(4)启动ntp服务

systemctl start ntpd

(5)设置开机启动

systemctl enable ntpd

(6)查看状态

ntpq -p

三、设置Minio集群(注意docker部署集群模式时必须指定-–net=host参数,使用主机网络,采用端口映射无法创建集群)

1、拉取镜像(所有Minio节点都需要执行

docker pull minio/minio

2、配置本地hosts解析(所有Minio节点都需要执行,/etc/hosts文件)

IP1 minio-1
IP2 minio-2
IP3 minio-3

3、创建minio本地存储路径(所有Minio节点都需要执行)

mkdir -p /home/minio/{data,backup}

4、创建minio容器(各个节点执行各个节点的命令)
(1)Minio-1(IP1)节点执行命令

docker run -d --name minio-01 --restart=always --net=host \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=xxxxx" \
-e "MINIO_SERVER_URL=http://IP1:9000" \
-v /home/minio/data:/data1 \
-v /home/minio/backup:/data2 \
minio/minio:latest server \
--address IP1:9000 \
--console-address '0.0.0.0:9001' http://minio-{1...3}/data{1...2}

(2)Minio-2(IP2)节点执行命令

docker run -d --name minio-02 --restart=always --net=host \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=xxxxx" \
-e "MINIO_SERVER_URL=http://IP1:9000" \
-v /home/minio/data:/data1 \
-v /home/minio/backup:/data2 \
minio/minio:latest server \
--address IP2:9000 \
--console-address '0.0.0.0:9001' http://minio-{1...3}/data{1...2}

(3)Minio-3(IP3)节点执行命令

docker run -d --name minio-03 --restart=always --net=host \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=xxxxx" \
-e "MINIO_SERVER_URL=http://IP1:9000" \
-v /home/minio/data:/data1 \
-v /home/minio/backup:/data2 \
minio/minio:latest server \
--address IP3:9000 \
--console-address '0.0.0.0:9001' http://minio-{1...3}/data{1...2}

四、访问任意节点IP:9001访问
五、新版踩坑:
在分享share文件的时候会出现IP 地址为127.0.0.1或者localhost的情况,解决办法:
找一台机器,例如IP地址为IP1的话,在三台机器启动容器的时候,分别添加环境变量参数:

-e "MINIO_SERVER_URL=http://IP1:9000" \

并且集群内的所有机器都需要是IP1地址

你可能感兴趣的:(docker,容器,运维)