基于minio存储,容器化部署高可用docker-registry

基于minio存储,容器化部署高可用docker-registry

minio部署

根据部署方式不同,支持几种方式,二进制文件部署,docker容器部署,kubenetes集群部署

根据集群规划,可以分为单节点,分布式

本文档主要介绍后两种部署方法,docker容器部署分布式minio集群和kubenetes集群部署minio分布式集群

docker容器部署分布式minio集群

部署需求

环境:四台x86服务器

minio镜像

mc镜像

keepalived镜像

docker-registry镜像

占用宿主机端口:9000

磁盘:/minio ,四节点都需要创建

! ! 以下所有命令均需要在四个节点执行 ! !

创建持久化目录

#四节点四个磁盘路径 /minio 作为minio容器集群的存储路径

mkdir /minio

#config作为minio的配置路径

mkdir /etc/config

启动minio容器

#容器使用宿主机网络,容器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存储,容器化部署高可用docker-registry_第1张图片

验证

页面打开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测试
基于minio存储,容器化部署高可用docker-registry_第2张图片
上传文件测试后,查看本地存储

对应路径下已产生test文件夹和上传测试文件,minio启动成功

docker-registry对接minio部署

在创建好容器化minio的分布式集群后,开始部署docker-registry并对接minio

安装keepalived

创建keepalived配置文件(所用minio容器节点都需要执行)

mkdir /etc/keepalived

创建检测脚本

cat>> /etc/keepalived/check.sh <

主节点配置文件(可任选minio其一容器节点为主节点)

cat>> /etc/keepalived/keepalived.conf <

从节点配置文件(可任选minio其一容器节点为主节点)

cat>> /etc/keepalived/keepalived.conf <

启动keepalived(所有节点执行)

docker run -d --name keepalived-minio --net=host --cap-add NET_ADMIN -v /etc/keepalived/:/etc/keepalived/ keepalived/keepalived:v1.2

检测keepalived+minio

使用代理后的vip:9000登录minio

通过vip可正常访问minio,并进行文件的上传下载

部署minio客户端mc

MinIO Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。

安装mc

创建mc执行脚本

mkdir /etc/mc/
cat >> /etc/mc/mc-init.sh << EOF
mc config host add s3 http://minio地址:9000 用户名 密码 S3v4
mc mb s3/registry
EOF

启动mc

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'

对接registry

创建docker-registry目录

mkdir /etc/registry

创建docker-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-registry_第3张图片

镜像可以成功上传,并且minio界面也出现对应docker存储,本地目录下也出现对应路径,验证测试成功。

你可能感兴趣的:(基于minio存储,容器化部署高可用docker-registry)