根据部署方式不同,支持几种方式,二进制文件部署,docker容器部署,kubenetes集群部署
根据集群规划,可以分为单节点,分布式
本文档主要介绍后两种部署方法,docker容器部署分布式minio集群和kubenetes集群部署minio分布式集群
环境:四台x86服务器
minio镜像
mc镜像
keepalived镜像
docker-registry镜像
占用宿主机端口:9000
磁盘:/minio ,四节点都需要创建
#四节点四个磁盘路径 /minio 作为minio容器集群的存储路径
mkdir /minio
#config作为minio的配置路径
mkdir /etc/config
#容器使用宿主机网络,容器9000端口映射宿主机9000端口,容器名为minio,访问密码为admin/xxxxxxxx,将宿主机目录/minio挂载至容器的/data目录作为存储路径,使用s3兼容模式启动minio
docker run --network=host -d -p 9000:9000 --name minio \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=xxxxxxxx" \
-v /minio:/data \
-v /etc/config:/root/.minio \
minio/minio:1.0.0 server --compat \
http://10.x.x.1:9000/data \
http://10.x.x.2:9000/data \
http://10.x.x.3:9000/data \
http://10.x.x.4:9000/data
注:
# --network=host
docker参数,容器使用宿主机网络
# -d
docker参数,后台运行容器
# -p 9000:9000
docker参数,将容器9000端口映射至主机9000端口
# -e
docker参数,传入环境变量MINIO_ACCESS_KEY和MINIO_SECRET_KEY,为minio登录的用户名和密码
# -v
docker参数,将本机/minio挂载为容器内的/data
# --compat
minio参数,启动兼容s3模式
页面打开minio登录网址 http://10.x.x.1:9000、http://10.x.x.2:9000、http://10.x.x.3:9000、http://10.x.x.4:9000
输入用户名密码
登录后可看到minio管理页面
点击右下角红色加号按钮,创建test buket测试
上传文件测试后,查看本地存储
对应路径下已产生test文件夹和上传测试文件,minio启动成功
在创建好容器化minio的分布式集群后,开始部署docker-registry并对接minio
mkdir /etc/keepalived
cat>> /etc/keepalived/check.sh <
cat>> /etc/keepalived/keepalived.conf <
cat>> /etc/keepalived/keepalived.conf <
docker run -d --name keepalived-minio --net=host --cap-add NET_ADMIN -v /etc/keepalived/:/etc/keepalived/ keepalived/keepalived:v1.2
使用代理后的vip:9000登录minio
通过vip可正常访问minio,并进行文件的上传下载
MinIO Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。
mkdir /etc/mc/
cat >> /etc/mc/mc-init.sh << EOF
mc config host add s3 http://minio地址:9000 用户名 密码 S3v4
mc mb s3/registry
EOF
docker run -it -v /etc/mc/:/etc/mc/ --name minio-mc --entrypoint=/bin/sh ,mc/mc:1.0.0 -c 'sh /etc/mc/mc-init.sh'
mkdir /etc/registry
touch /etc/registry/config.yml
cat>> /etc/registry/config.yml <
docker run -d -v /etc/registry:/etc/registry -p 5000:5000 --restart=always --name registry {{registry_image}}
镜像可以成功上传,并且minio界面也出现对应docker存储,本地目录下也出现对应路径,验证测试成功。