之前我有写过用腾讯云轻量部署单节点的文章
这次来讲讲Docker部署分布式Minio
根据官方文档所说,Minio分布式部署需要最低四块硬盘,也就是说利用Docker进行分布式部署的最低要求是两节点两硬盘,此次部署的计划便是如此。
准备
我准备了两台南京地区的轻量应用服务器,系统均为Debian11
为什么要两台同地区的?因为腾讯云轻量同地区默认分配在同一VPC网络中,两台机器可以免费享有高达5Gbps的内网互联,Minio的分布式部署是会在节点间同步数据的,公网带宽太小不够爽(
至于服务器的内网IP,可以在控制台的网络信息里看到
设置Hosts
由于Minio的分布式部署支持省略,我们参考下面的样式来增加节点
http://host{1...n}/export{1...m}
其中,n和m都为整数,host为节点名称,export为硬盘路径
例如
http://host{1...2}/export{1...2}
的执行效果等同于
http://host1/export1
http://host1/export2
http://host2/export1
http://host1/export2
所以我们使用Hosts文件来定义节点名称以及节点应该解析到的IP地址
vi /etc/hosts
按i
进入编辑模式,在最下行添加hosts解析,
10.0.4.13 minio-1
10.0.4.12 minio-2
添加完成后按ESC后输入:wq
保存,效果如下图
此时,可以使用PING命令来测试连通情况
如果没有PING命令,安装下面的软件包即可
apt-get update
apt install net-tools # ifconfig
apt install iputils-ping # ping
部署Docker
这个没有什么好细讲的,使用Docker官方的安装脚本即可,默认安装最新的发行版Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
部署镜像
基础配置命令
docker run -d --restart=always --net=host\
--name minio1 \
-v /home/minio/data1:/data1 \
-v /home/minio/data2:/data2 \
-e "MINIO_ROOT_USER=Your_Login_User_Name" \
-e "MINIO_ROOT_PASSWORD=Your_Login_User_Password" \
quay.io/minio/minio server --console-address ":9001" \
http://minio-{1...2}/data{1...2}
此配置下,两个节点均为两块硬盘,分别为data1和data2,控制台端口为9001
访问任意节点的公网IP:9001
即可进入控制台
http://minio-{1...2}/data{1...2}
中的点必须为三个英文.进阶配置命令
docker run -d --restart=always --net=host \
--name minio1 \
-v /home/minio/data1:/data1 \
-v /home/minio/data2:/data2 \
-e "MINIO_ROOT_USER=Your_Login_User_Name" \
-e "MINIO_ROOT_PASSWORD=Your_Login_User_Password" \
-e "MINIO_SERVER_URL=https://file.Your_DominName.com" \
-e "MINIO_BROWSER_REDIRECT_URL=https://minio.Your_DominName.com" \
quay.io/minio/minio server --console-address ":9001" \
http://minio-{1...2}/data{1...2}
此命令增加了MINIO_SERVER_URL
和MINIO_BROWSER_REDIRECT_URL
两个参数,效果为:
- MINIO_SERVER_URL 设置Minio的API域名(对应API的IP:9000)
- MINIO_BROWSER_REDIRECT_URL 设置Minio Web Console域名(对应Web Console的IP:9001)
实际访问需要配置好NGINX,具体可参考我部署单节点时的文章
其他功能及效果验证
在分布式部署的情况下,Minio将会自动启用纠删码模式,并且在单节点不可用的版本控制、对象锁定以及数据保留功能
此时我们创建桶后进行文件上传
可以看到每个节点虚拟出的每块硬盘都上传了一份文件,也就是同时会有四份文件存放在不同的位置。
一些遇到问题的小提示
- 部署如果遇到镜像无法启动,使用
docker logs minio1
来查看镜像日志,再根据日志进行排错。 - Minio分布式部署无法使用端口转发,必须使用本机网络,也就是镜像启动参数携带
--net=host
。
另外,如果log报出Please provide an even number of endpoints greater or equal to 4
,则代表硬盘数量不足4个,请删除单节点下配置文件最后的/data
,此内容是指定启用的磁盘路径。
- 最新
- 最热
只看作者