基础准备
首先准备三台服务器都下载并安装好docker、minio,服务器有现成镜像,直接load即可,此处不做详细操作步骤
配置本地解析
三台服务器分别执行以下命令:
vim /etc/hosts
添加下面内容
35.1.176.50 minio-1
35.1.176.99 minio-2
35.1.176.67 minio-3
注意看一下三台服务器时间是否同步【date命令】,关闭防火墙,selinux,或者开放相应端口,minio默认使用端口9000/9001,如果占用,可通过【--address 35.1.176.50:19000 --console-address ":19001"】指定其他端口
接下来部署minio集群
注意docker部署集群模式时必须指定-–net=host参数,使用主机网络,使用端口映射无法创建集群
MINIO_ACCESS_KEY=admin 设置的账号名
MINIO_SECRET_KEY=Hylink2014@minio 设置的登录密码
在minio-1节点执行
docker run -d --name minio-01 --restart=always --net=host -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=Hylink2014@minio --log-opt max-size=10m \ -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /home/hylink/docker/container/minio/config:/root/.minio \ -v /home/hylink/docker/container/minio/data/data1:/data1 \ -v /home/hylink/docker/container/minio/data/data2:/data2 \ minio/minio:latest server --address 35.1.176.50:19000 --console-address ":19001" \ http://minio-{1...3}/data{1...2}
在minio-2节点执行
docker run -d --name minio-02 --restart=always --net=host -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=Hylink2014@minio --log-opt max-size=10m \ -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /home/hylink/docker/container/minio/config:/root/.minio \ -v /home/hylink/docker/container/minio/data/data1:/data1 \ -v /home/hylink/docker/container/minio/data/data2:/data2 \ minio/minio:latest server --address 35.1.176.99:19000 --console-address ":19001" \ http://minio-{1...3}/data{1...2}
在minio-3节点执行
docker run -d --name minio-03 --restart=always --net=host -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=Hylink2014@minio --log-opt max-size=10m \ -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /home/hylink/docker/container/minio/config:/root/.minio \ -v /home/hylink/docker/container/minio/data/data1:/data1 \ -v /home/hylink/docker/container/minio/data/data2:/data2 \ minio/minio:latest server --address 35.1.176.67:19000 --console-address ":19001" \ http://minio-{1...3}/data{1...2}
查看一下容器状态docker ps
随后访问任意ip:19001登录 minio查看
账号admin 密码 Hylink2014@minio
Minio三节点集群宕机一个节点时可以正常使用 宕机两个节点时 无法使用
测试
测试文件是否同步,需登录客户端操作
登录成功之后,点击左侧菜单【Buckets】,点击右侧【Create Bucket】按钮创建文件存储目录,在新创建的存储目录右侧,点击【Browse】按钮进入目录内部,点击右侧【Upload】按钮上传文件即可,然后就可以去服务器minio安装目录去查看新创建的存储目录内,是否有新上传的文件,进入其它服务器相同位置,查看文件是否同步
注:搭建集群后,minio存储目录查看到的文件并不是文件本身,校验文件准确性,可在客户端找到上传的文件下载查看即可
nginx负载均衡
修改nginx挂载文件default.conf
文件地址:/etc/nginx/conf.d/default.conf
upstream minio_console { server 35.1.176.50:19001 max_fails=10 fail_timeout=60s; server 35.1.176.67:19001 max_fails=10 fail_timeout=60s; server 35.1.176.99:19001 max_fails=10 fail_timeout=60s; } upstream minio_api { server 35.1.176.50:19000 max_fails=10 fail_timeout=60s; server 35.1.176.67:19000 max_fails=10 fail_timeout=60s; server 35.1.176.99:19000 max_fails=10 fail_timeout=60s; } server { listen 19001; server_name 35.1.176.135; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log warn; client_max_body_size 0; # 请求体大小,不限制 proxy_buffering off; # 缓存请求体,关闭 location / { # 支持websocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://minio_console; expires 0; } } server { listen 19000; server_name 35.1.176.135; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log warn; client_max_body_size 0; proxy_buffering off; location / { # 支持websocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://minio_api; expires 0; } }