前言

关于Minio使用docker进行集群部署,网上和官方给的案例大多都是使用k8s、Docker compose伪集群和Docker swarm进行部署,很少使用docker直接进行集群部署,相关博客也很少,而且还有坑,下面是我踩坑过后的部署过程。

一、什么是Minio

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。

二、集群部署步骤

1.准备机器
准备三台机器、关闭防火墙、selinux、同步时间、配置主机名解析和安装好docker

以上机器是作者曾经用来搭建k8s集群所使用的机器,所以相关配置已经配好,不会的小可爱请自行百度
2.下载镜像
三台机器都要下载镜像

docker pull minio/minio


3.配置集群

//主机k8s-master上运行命令
docker run -d --net=host --name=minio -v /data/minio/data1:/data1 -v /data/minio/data2:/data2 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" minio/minio server  --address 192.168.11.145:9000 http://k8s-master/data/minio/data1 http://k8s-master/data2  http://k8s-node1/data/minio/data1 http://k8s-node1/data/minio/data2 http://k8s-node2/data/minio/data1 http://k8s-node2/data/minio/data2
//主机k8s-node1上运行命令
docker run -d --net=host --name=minio -v /data/minio/data1:/data1 -v /data/minio/data2:/data2 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" minio/minio server --address 192.168.11.146:9000 http://k8s-master/data/minio/data1 http://k8s-master/data2 http://k8s-node1/data/minio/data1 http://k8s-node1/data/minio/data2 http://k8s-node2/data/minio/data1 http://k8s-node2/data/minio/data2
//主机k8s-node2上运行命令
docker run -d --net=host --name=minio -v /data/minio/data1:/data1 -v /data/minio/data2:/data2 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" minio/minio server --address 192.168.11.147:9000 http://k8s-master/data/minio/data1 http://k8s-master/data2 http://k8s-node1/data/minio/data1 http://k8s-node1/data/minio/data2  http://k8s-node2/data/minio/data1 http://k8s-node2/data/minio/data2

关于此段docker命令,集群连接指向的磁盘目录是容器内目录挂载到Linux主机上的目录,
我在网上看到有使用docker具名挂载的,然后集群连接指向了容器内部的data1和data2目
录,我使用网上的办法集群会报错,提示找不到磁盘,磁盘数量不足。

在这里插入图片描述

注:主机名以自己配置的为主,挂载的目录必须为空目录,docker部署集群模式时必须指定–net=host参数,使用主机网络,使用端口映射无法创建集群

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐