文章目录
- 背景
- 一. 服务器准备
- 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及上传文件后,其他页面均可访问及操作。