minio集群docker部署
MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。它与 Amazon S3 云存储服务 API 兼容。使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。
- 官方文档:https://docs.min.io/
- 中文文档:http://docs.minio.org.cn/docs/
- GitHub地址:https://github.com/minio/minio
特点
-
数据保护——分布式Minio采用 纠删码来防范多个节点宕机和位衰减bit rot。分布式Minio至少需要4个硬盘,使用分布式Minio自动引入了纠删码功能。
-
高可用——单机Minio服务存在单点故障,相反,如果是一个有N块硬盘的分布式Minio,只要有N/2硬盘在线,你的数据就是安全的。不过你需要至少有N/2+1个硬盘来创建新的对象。
例如,一个16节点的Minio集群,每个节点16块硬盘,就算8台服務器宕机,这个集群仍然是可读的,不过你需要9台服務器才能写数据。
【温馨提示】只要遵守分布式Minio的限制,你可以组合不同的节点和每个节点几块硬盘。
比如,你可以使用2个节点,每个节点4块硬盘,也可以使用4个节点,每个节点两块硬盘,诸如此类。
- 一致性——Minio在分布式和单机模式下,所有读写操作都严格遵守read-after-write一致性模型。
docker-compose部署
社区版给的方案 docker-compose.yaml
下载地址:https://raw.githubusercontent.com/minio/minio/master/docs/orchestration/docker-compose/docker-compose.yaml
使用nginx代理作为统一访问入口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
version: '3'
x-minio-common: &minio-common
image: quay.io/minio/minio:RELEASE.2023-03-24T21-41-23Z
restart: always
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=abcd1234
privileged: true
command: server --console-address ":9001" http://xbd-minio-{1...4}/data-{1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
services:
xbd-minio-1:
<<: *minio-common
container_name: xbd-minio-1
volumes:
- ./1/data-1:/data-1
- ./1/data-2:/data-2
xbd-minio-2:
<<: *minio-common
container_name: xbd-minio-2
volumes:
- ./2/data-1:/data-1
- ./2/data-2:/data-2
xbd-minio-3:
<<: *minio-common
container_name: xbd-minio-3
volumes:
- ./3/data-1:/data-1
- ./3/data-2:/data-2
xbd-minio-4:
<<: *minio-common
container_name: xbd-minio-4
volumes:
- ./4/data-1:/data-1
- ./4/data-2:/data-2
xbd-nginx:
image: nginx:1.22.1-alpine
container_name: xbd-nginx
ports:
- 9000:9000
- 9001:9001
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
restart: always
privileged: true
|
nginx.conf
配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream xbd-minio-endpoint {
server xbd-minio-1:9000;
server xbd-minio-2:9000;
server xbd-minio-3:9000;
server xbd-minio-4:9000;
}
upstream xbd-minio-console {
server xbd-minio-1:9001;
server xbd-minio-2:9001;
server xbd-minio-3:9001;
server xbd-minio-4:9001;
}
server {
listen 9000;
server_name xbd-minio-endpoint;
location / {
proxy_pass http://xbd-minio-endpoint;
}
}
server {
listen 9001;
server_name xbd-minio-console;
location / {
proxy_pass http://xbd-minio-console;
}
}
}
|
参考