文章目录
- 背景
- 一. 服务器准备
- 1. minio集群1
- 2. minio集群2
- 3. etcd服务
 
- 二、etcd 部署
- 三、minio集群部署
- 1、集群1
- 2、集群2部署
 
- 四、测试
背景
根据公司业务调研引入minio做数据存储,考虑到后期的扩容与维护选择使用docker、etcd实现联邦扩容
一. 服务器准备
1. minio集群1
需要在各自服务器/etc/hosts文件中做域名映射
| ip | hostname | 
|---|---|
| 192.168.1.101 | minio01 | 
| 192.168.11.166 | minio02 | 
2. minio集群2
| ip | hostname | 
|---|---|
| 192.168.1.108 | minio03 | 
3. etcd服务
| ip | 
|---|
| 192.168.1.101 | 
二、etcd 部署
docker-compose.yml
version: "3.0"networks:etcd-net:driver: bridgeservices:etcd1:image: quay.io/coreos/etcd:latestcontainer_name: etcd1networks:- etcd-netports:- "2379:2379"- "2380:2380"environment:- ETCDCTL_API=3- ETCD_NAME=etcd1- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://192.168.1.101:2380- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379- ETCD_ADVERTISE_CLIENT_URLS=http://192.168.1.101:2379- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster- ETCD_INITIAL_CLUSTER=etcd1=http://192.168.1.101:2380- ETCD_INITIAL_CLUSTER_STATE=newvolumes:- ./etcd-data:/etcd-data
三、minio集群部署
1、集群1
docker-compose.yml
 minio01 minio02 在docker-compose.yml所在目录分别创建 ./data1 ./data2目录,运行docker-compose up -d 或 docker compose up -d 运行容器
version: "3.3"services:minio:image: quay.io/minio/minio:RELEASE.2023-07-21T21-12-44Zports:- 9000:9000- 9001:9001environment:- MINIO_REGION=eu-west-1- MINIO_ROOT_USER=minio- MINIO_ROOT_PASSWORD=miniopwd  - MINIO_ETCD_ENDPOINTS=http://192.168.1.101:2379  # etcd 部署地址- MINIO_SERVER_IPS=192.168.1.101,192.168.11.166 # 集群所有节点ip- MINIO_DOMAIN=myminio.com  # 联邦扩容标识volumes:- ./data1:/data1  # 挂载两个节点- ./data2:/data2entrypoint: shnetwork_mode: "host"# minio01 minio02 每个服务器两个节点,共同组建一个集群command: -c '/usr/bin/docker-entrypoint.sh server   --address ":9000"  http://minio0{1...2}/data{1...2}  --console-address ":9001"' 
2、集群2部署
docker-compose.yml
version: "3.3"services:minio:image: quay.io/minio/minio:RELEASE.2023-07-21T21-12-44Zports:- 9000:9000- 9001:9001environment:- MINIO_REGION=eu-west-1- MINIO_ROOT_USER=minio- MINIO_ROOT_PASSWORD=miniopwd- MINIO_ETCD_ENDPOINTS=http://192.168.1.101:2379- MINIO_SERVER_IPS=192.168.1.108- MINIO_DOMAIN=myminio.comvolumes:- ./data1:/data1- ./data2:/data2entrypoint: shnetwork_mode: "host"command: -c '/usr/bin/docker-entrypoint.sh server   --address ":9000"  http://minio03/data{1...2}  --console-address ":9001"'
四、测试
页面分别访问 http://192.168.1.101:9000 http://192.168.11.166:9000 http://192.168.1.108:9000 再任意界面创建bucket及上传文件后,其他页面均可访问及操作。