【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 跳过证书校验。
相关推荐
分布式存储与RustFS16 小时前
Terraform 状态文件老在本地丢、并发还撞锁:把 state 锁进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
kiwixing21 小时前
GaussDB|集中式还是分布式?三把尺子选型
分布式·gaussdb
真上帝的左手1 天前
30. 技术专题-‌应用框架组件-分布式架构
分布式·架构·系统架构·分布式架构
我不会插花弄玉1 天前
6.传输层协议UDP【由浅入深-网络】
网络·网络协议·udp
火云代理1 天前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
火云代理2 天前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖2 天前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
火云代理2 天前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
如夏倾城2 天前
QUIC——HTTP/3 的唯一底层传输协议 及 0-RTT恢复
网络·网络协议·tcp/ip·安全·http
分布式存储与RustFS2 天前
镜像仓库的层别只堆本地盘:用 RustFS 给 Harbor 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准