docker部署minio多台服务器集群

1.所有节点配置主机名解析:(为了节点相互可以找到)

    cat >> /etc/hosts << EOF
    10.10.63.71 minio1
    10.10.63.72 minio2
    10.10.63.73 minio3
    10.10.63.74 minio4
    EOF

2.部署minio集群,4个节点每个节点挂载2个目录(注意:MINIO集群挂载目录不能使用根目录,这里使用docker卷作为挂载点)

minio1

docker run -d --name minio \
    --restart=always --net=host \
    -e MINIO_ACCESS_KEY=minio \
    -e MINIO_SECRET_KEY=minio123 \
    -v minio-data1:/data1 \
    -v minio-data2:/data2 \
    minio/minio server \
    --address 10.10.63.71:9000 \
    http://minio{1...4}/data{1...2}

minio2

docker run -d --name minio \
    --restart=always --net=host \
    -e MINIO_ACCESS_KEY=minio \
    -e MINIO_SECRET_KEY=minio123 \
    -v minio-data1:/data1 \
    -v minio-data2:/data2 \
    minio/minio server \
    --address 10.10.63.72:9000 \
    http://minio{1...4}/data{1...2}

minio3

docker run -d --name minio \
    --restart=always --net=host \
    -e MINIO_ACCESS_KEY=minio \
    -e MINIO_SECRET_KEY=minio123 \
    -v minio-data1:/data1 \
    -v minio-data2:/data2 \
    minio/minio server \
    --address 10.10.63.73:9000 \
    http://minio{1...4}/data{1...2}

minio4

docker run -d --name minio \
    --restart=always --net=host \
    -e MINIO_ACCESS_KEY=minio \
    -e MINIO_SECRET_KEY=minio123 \
    -v minio-data1:/data1 \
    -v minio-data2:/data2 \
    minio/minio server \
    --address 10.10.63.74:9000 \
    http://minio{1...4}/data{1...2}

3.启动日志

Console: http://10.10.63.71:38556 http://172.17.0.1:38556 http://127.0.0.1:38556        

Documentation: https://docs.min.io

WARNING: Console endpoint is listening on a dynamic port (38556), please use --console-address ":PORT" to choose a static port.
Exiting on signal: TERMINATED
WARNING: MINIO_ACCESS_KEY and MINIO_SECRET_KEY are deprecated.
         Please use MINIO_ROOT_USER and MINIO_ROOT_PASSWORD
Waiting for all MinIO sub-systems to be initialized.. lock acquired
Verifying if 1 bucket is consistent across drives...
Automatically configured API requests per node based on available memory on the system: 69
All MinIO sub-systems initialized successfully
Waiting for all MinIO IAM sub-system to be initialized.. lock acquired
Status:         8 Online, 0 Offline. 
API: http://10.10.63.71:9000

4.启动成功后访问4个节点中的任何节点都可以进入管理后台,并且在任何节点上传文件MINIO集群会自动同步数据,但是只有在线节点数量>n/2+1是,MINIO集群才能正常使用。

### 使用 Docker 部署 MinIO 集群 为了在两台服务器上使用 Docker 部署 MinIO 集群,需遵循特定配置和命令来确保分布式存储系统的正常运行。 #### 准备工作 每台服务器应安装并配置好 DockerDocker Compose。确认网络连接稳定,并开放必要的端口用于节点间通信以及客户端访问[^1]。 #### 创建环境变量文件 创建一个名为 `.env` 的文件,在其中定义共享密钥和其他必要参数: ```bash MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=miniosecret ENDPOINT_1=server1.example.com:9000 ENDPOINT_2=server2.example.com:9000 ACCESS_KEY=my-access-key SECRET_KEY=my-secret-key ``` 此步骤有助于简化后续操作中的认证过程。 #### 编写 `docker-compose.yml` 在同一目录下编写如下所示的 `docker-compose.yml` 文件,该文件描述了两个服务实例分别位于不同主机上的情况: ```yaml version: '3' services: minio1: image: quay.io/minio/minio command: server http://${ENDPOINT_1}/data{1...4} http://${ENDPOINT_2}/data{1...4} environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD} ports: - "9000:9000" - "9001:9001" volumes: - /mnt/data:/export networks: - minionet networks: minionet: volumes: data1: data2: data3: data4: ``` 上述 YAML 片段展示了如何通过指定多个 URL 来启动跨机器分布式的 MinIO 实例集合。注意替换实际 IP 地址或域名到 `${ENDPOINT_X}` 变量中去。 #### 启动集群 完成以上准备工作之后,在任意一台服务器执行以下指令即可初始化整个集群: ```bash docker-compose up -d ``` 这会按照编排好的方式拉取镜像、创建容器并将其加入到现有的 MinIO 分布式环境中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值