MINIO分布式集群搭建

搭建分布式集群

  • 使用docker-compose

中文文档:https://docs.min.io/cn/deploy-minio-on-docker-compose.html
Docker Compose允许定义和运行单主机,多容器Docker应用程序。
使用Compose,您可以使用Compose文件来配置MinIO服务。 然后,使用单个命令,您可以通过你的配置创建并启动所有分布式MinIO实例。 分布式MinIO实例将部署在同一主机上的多个容器中。 这是建立基于分布式MinIO的开发,测试和分期环境的好方法。
环境准备:docker,docker-compose
获取docker镜像

  1. 可以从docker官方网站获取最新镜像:https://hub.docker.com/r/minio/minio/
  2. 此处我已经下载好了,获取minio.tar包,导入镜像
    docker load -i minio.tar
    docker images minio/minio:1.1
    获取docker-compose.yaml文件
version: '2.3'
services:
  minio1:
    image: minio/minio:1.1
    volumes:
      - /export/data/minio/minio1-1:/data1
      - /export/data/minio/minio1-2:/data2
    ports:
      - "9001:9000"
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    command: server http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio2:
    image: minio/minio:1.1
    volumes:
      - /export/data/minio/minio2-1:/data1
      - /export/data/minio/minio2-2:/data2
    ports:
      - "9002:9000"
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    command: server http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio3:
    image: minio/minio:1.1
    volumes:
      - /export/data/minio/minio3-1:/data1
      - /export/data/minio/minio3-2:/data2
    ports:
      - "9003:9000"
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    command: server http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio4:
    image: minio/minio:1.1
    volumes:
      - /export/data/minio/minio4-1:/data1
      - /export/data/minio/minio4-2:/data2
    ports:
      - "9004:9000"
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    command: server http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

#volumes:
#  data1-1: /export/data/minio/minio1
#  data1-2: /export/data/minio/minio1-2
#  data2-1: /export/data/minio/minio2
#  data2-2: /export/data/minio/minio2-2
#  data3-1: /export/data/minio/minio3
#  data3-2: /export/data/minio/minio3-2
#  data4-1: /export/data/minio/minio4
#  data4-2: /export/data/minio/minio4-2

参数的简单解释:
在这里插入图片描述

启动
docker-compose up
会发现运行了四个容器
在这里插入图片描述

测试
登陆
http://{ip}:9001/minio/login 账号密码为docker-compose中写的
创建桶,上传文件,无问题证明可用

  • 二进制分布式部署
    此处我们使用了4台机器,每台机器上一块盘
    盘的路径为:/export/data
    获取包
    wget https://dl.minio.io/server/minio/release/linux-amd64/minio
    增加执行权限
    文件所在目录/export/software/minio
    chmod +x minio
    依次执行以下命令
export MINIO_ACCESS_KEY=MinIO   
export MINIO_SECRET_KEY=zzAdmin2020
/export/software/minio/minio server --compat http://192.168.1.1/export/data/  http://192.168.1.2/export/data/ http://192.168.1.3/export/data/ http://192.168.1.4/export/data > minio_server.log 2>&1 &

四台机器都要执行上述命令
最后日志中出现:
Status: 4 Online, 0 Offline.
部署无问题
登录测试:
默认为9000端口,随意找一个机器登录9000端口创建桶,上传文件无问题证明好使

  • nginx代理
    我们可以通过nginx实现负载均衡
    nginx配置如下:
upstream minio_server {
    server 192.168.8.1:9000;
    server 192.168.8.2:9000;
    server 192.168.8.3:9000;
    server 192.168.8.4:9000;
    }
server {
    listen 80;
    server_name minio.com;
    
    location / {
        proxy_set_header Host $http_host;
client_body_buffer_size 10M;
        client_max_body_size 1024M;
        proxy_buffers 1024 4k;
        proxy_read_timeout 300;
        proxy_pass http://minio_server;
    }
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值