一、MinIO 部署模式区分
1. 单机简单模式(入门测试)
- 架构:单主机 + 单磁盘
- 特点:部署最简单,但是无冗余、数据不可靠,只适合学习测试,严禁生产使用。
生产环境推荐:多磁盘、多主机分布式集群,支持数据分片、故障容错。
2. 分布式 MinIO 集群(本次案例:2 节点,每节点 2 块盘)
集群节点:
- 节点 1:
192.168.80.187 - 节点 2:
192.168.80.188
架构说明:2 台机器,每台挂载 2 块磁盘,总共 4 块盘组成分布式集群。支持后期动态扩容。
docker-compose.yml 完整配置(节点 1 192.168.80.187)
minio:
image: minio/minio:RELEASE.2025-04-08T15-41-24Z
container_name: minio
restart: always
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=12345678
- MINIO_SERVER_URL=http://192.168.80.187:9000
volumes:
- ./conf:/home/minio/conf
- ./mnt/disk1:/mnt/disk1
- ./mnt/disk2:/mnt/disk2
command: >
server --config-dir /home/minio/conf
--address "192.168.80.187:9000"
--console-address "192.168.80.187:9001"
http://192.168.80.187/mnt/disk1
http://192.168.80.187/mnt/disk2
http://192.168.80.188/mnt/disk1
http://192.168.80.188/mnt/disk2
network_mode: host
privileged: true
deploy:
resources:
limits:
cpus: '2'
memory: 4G
reservations:
cpus: '1'
memory: 2G
关键要点说明
- command 里面写全所有节点磁盘地址,分布式 MinIO 会自动把数据分片到 4 个磁盘。
network_mode: host:使用宿主机网络,直接占用宿主机 9000(API 端口)、9001(控制台端口),两台机器都要开启 host 网络,防火墙放行端口。deploy资源限制:仅 docker swarm 模式生效 ,普通docker-compose up不会读取这部分配置。- 注意:两个节点都要部署 MinIO 服务,上面这份是 187 节点配置;188 节点需要一份结构相同的 compose 文件。
- 优势:支持动态扩容,集群容量不足时新增节点 / 磁盘即可扩展。
二、MinIO HTTPS/TLS 加密部署
1. 作用
默认是 HTTP 明文传输,网络抓包可以窃取数据。配置 TLS 证书后升级为 HTTPS,通信数据加密传输。
2. 证书方案
学习环境使用 自签 TLS 证书 ,通过 ca.sh 脚本生成:
- 私钥:
private.key - 公钥证书:
public.crt
生产环境建议使用正规 CA 机构颁发的可信证书。
3. 客户端连接 HTTPS 要点
- 使用 HTTPS 地址连接 MinIO 时,客户端参数设置:
secure:true - 自签证书客户端会报证书不信任错误 ,开发测试阶段可以开启跳过证书校验:
InsecureSkipVerify:true
生产环境禁止开启
InsecureSkipVerify。
三、复习总结
- 单机单盘仅用于学习;生产优先分布式多机多盘,保障数据容错。
- 分布式 MinIO:所有节点磁盘地址全部写在 server 启动命令,所有节点都要启动 MinIO。
- HTTP 明文不安全;HTTPS 依靠 TLS 证书加密通信。
- 自签证书测试:客户端 secure=true,配合 InsecureSkipVerify 跳过证书校验。