温馨提示×

Ubuntu系统怎样部署MinIO

小樊
37
2025-12-24 16:26:05
栏目: 智能运维

Ubuntu 部署 MinIO 实操指南

一 环境准备与二进制安装

  • 更新系统并安装常用工具:
    • sudo apt update && sudo apt install -y wget curl
  • 创建系统用户与数据目录(避免使用 root 运行):
    • sudo useradd -r -s /usr/sbin/nologin minio-user
    • sudo mkdir -p /usr/local/share/minio /etc/minio
    • sudo chown -R minio-user:minio-user /usr/local/share/minio /etc/minio
  • 下载并安装 MinIO 二进制到系统路径:
    • wget https://dl.min.io/server/minio/release/linux-amd64/minio
    • chmod +x minio
    • sudo mv minio /usr/local/bin/
  • 说明:MinIO 默认 API 端口为 9000,控制台端口为 9001(新版将控制台与 API 分离)。

二 配置 systemd 服务

  • 创建环境文件 /etc/default/minio(示例为单磁盘,生产可挂载多盘并配置 MINIO_VOLUMES):
    • sudo nano /etc/default/minio
    • 写入示例(请自定义强密码):
      • MINIO_ROOT_USER=Admin
      • MINIO_ROOT_PASSWORD=StrongPassw0rd!
      • MINIO_VOLUMES=“/usr/local/share/minio/”
      • MINIO_OPTS=“–console-address :9001
  • 创建服务单元 /etc/systemd/system/minio.service(使用独立用户与最小权限):
    • sudo nano /etc/systemd/system/minio.service
    • 写入示例:
      • [Unit]
        • Description=MinIO Object Storage
        • Documentation=https://docs.min.io
        • Wants=network-online.target
        • After=network-online.target
      • [Service]
        • Type=notify
        • User=minio-user
        • Group=minio-user
        • EnvironmentFile=/etc/default/minio
        • ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
        • Restart=always
        • RestartSec=5
        • LimitNOFILE=65536
      • [Install]
        • WantedBy=multi-user.target
  • 启用并启动服务:
    • sudo systemctl daemon-reload
    • sudo systemctl enable --now minio
    • sudo systemctl status minio
  • 提示:如需对外仅暴露控制台端口,可将 API 绑定到本地回环(在 MINIO_OPTS 中增加 –address 127.0.0.1:9000),再由反向代理对外提供 API。

三 防火墙与端口开放

  • UFW(Ubuntu 常用防火墙):
    • sudo ufw allow 9000,9001/tcp
    • sudo ufw reload
  • firewalld(如系统使用 firewalld):
    • sudo firewall-cmd --permanent --add-port=9000/tcp
    • sudo firewall-cmd --permanent --add-port=9001/tcp
    • sudo firewall-cmd --reload
  • 云服务器安全组:放行 TCP 9000/9001 入站规则。

四 访问控制台与初始化

  • 访问地址:
    • 控制台:http://<服务器IP>:9001
    • API:http://<服务器IP>:9000(S3 兼容)
  • 首次登录使用在 /etc/default/minio 中配置的 MINIO_ROOT_USER / MINIO_ROOT_PASSWORD
  • 基本操作建议:
    • 创建 Bucket、设置 Access Policy(public/private)、配置 IAM 用户/密钥、开启 Bucket Versioning/Object Lock(如需要)。
    • 客户端(mc)配置别名示例:
      • mc alias set myminio http://:9000 Admin StrongPassw0rd!
      • mc ls myminio

五 生产环境加固与进阶

  • 使用域名与反向代理(Nginx/ALB)统一暴露,并启用 TLS/HTTPS
    • 示例 Nginx 反向代理片段(将 9001 暴露为 443,API 9000 仅内网或代理转发):
      • server {
        • listen 443 ssl http2;
        • server_name minio.example.com;
        • ssl_certificate /etc/letsencrypt/live/minio.example.com/fullchain.pem;
        • ssl_certificate_key /etc/letsencrypt/live/minio.example.com/privkey.pem;
        • client_max_body_size 0;
        • proxy_buffering off;
        • location / {
          • proxy_set_header Host $http_host;
          • proxy_set_header X-Real-IP $remote_addr;
          • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          • proxy_set_header X-Forwarded-Proto $scheme;
          • proxy_http_version 1.1;
          • proxy_set_header Upgrade $http_upgrade;
          • proxy_set_header Connection “upgrade”;
          • proxy_pass http://127.0.0.1:9001;
        • }
      • }
    • 如需直接由 MinIO 终止 TLS,可将证书与私钥放入 /etc/minio/certs/(文件名为 private.keypublic.crt),并重启服务。
  • 高可用与扩展:
    • 单机多盘:在 MINIO_VOLUMES 中指定多个目录(示例:“/data1 /data2 /data3”)。
    • 分布式部署:按官方指引准备多台服务器与多块磁盘,使用分布式启动命令与纠删码/副本策略。
  • 安全建议:
    • 使用强密码与最小权限策略,定期轮换 Access Key/Secret Key
    • 限制管理接口访问来源(仅内网或跳板机)。
    • 开启访问日志与监控告警,定期备份配置与证书。

0