【minio】#5 | MinIO 分布式部署 + HTTPS 部署

一、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
关键要点说明
  1. command 里面写全所有节点磁盘地址,分布式 MinIO 会自动把数据分片到 4 个磁盘。
  2. network_mode: host:使用宿主机网络,直接占用宿主机 9000(API 端口)、9001(控制台端口),两台机器都要开启 host 网络,防火墙放行端口。
  3. deploy 资源限制:仅 docker swarm 模式生效 ,普通docker-compose up不会读取这部分配置。
  4. 注意:两个节点都要部署 MinIO 服务,上面这份是 187 节点配置;188 节点需要一份结构相同的 compose 文件。
  5. 优势:支持动态扩容,集群容量不足时新增节点 / 磁盘即可扩展。

二、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。

三、复习总结

  1. 单机单盘仅用于学习;生产优先分布式多机多盘,保障数据容错。
  2. 分布式 MinIO:所有节点磁盘地址全部写在 server 启动命令,所有节点都要启动 MinIO。
  3. HTTP 明文不安全;HTTPS 依靠 TLS 证书加密通信。
  4. 自签证书测试:客户端 secure=true,配合 InsecureSkipVerify 跳过证书校验。
相关推荐
wangbing11252 小时前
开发指南148-WebSocket-后端
网络·websocket·网络协议
谢亮_vipxieliang11 小时前
Spring Cloud 服务治理入门:注册发现、配置中心、网关限流、熔断降级与分布式一致性方案
分布式·spring·spring cloud
网络小江12 小时前
上网第三十九课:TCP 的可靠性——滑动窗口、重传与拥塞控制
网络协议
91刘仁德14 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http
Lsetea14 小时前
Nginx加载证书时报SSL_CTX_use_PrivateKey_file失败:私钥配对与权限排查
nginx·https·ssl证书·私钥·证书部署
可乐鸡翅yeah_15 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
pt104318 小时前
CML网络仿真入门-2:使用CML模拟网络实验环境
运维·网络协议
樱花落木兰20 小时前
分布式登录实战:Session 会话共享改造,Redis 存储用户登录状态
java·javascript·数据库·redis·分布式·缓存
ShineWinsu20 小时前
对于Redis:Steam、Geospatial、Hyperloglog、Bitmap、Bitfield类型的解析
数据库·c++·redis·分布式·缓存·面试·zset