温馨提示×

ubuntu如何集成minio应用

小樊
36
2025-11-29 03:02:44
栏目: 智能运维

Ubuntu 集成 MinIO 的完整方案

一 部署与启动

  • 二进制方式(稳定可控)

    1. 下载并安装
    wget https://dl.min.io/server/minio/release/linux-amd64/minio
    chmod +x minio
    sudo mv minio /usr/local/bin/
    sudo mkdir -p /data/minio
    
    1. 配置管理员账号(建议写入环境文件持久化)
    echo 'export MINIO_ROOT_USER=admin' | sudo tee -a /etc/default/minio
    echo 'export MINIO_ROOT_PASSWORD=YourStrongP@ssw0rd' | sudo tee -a /etc/default/minio
    echo 'export MINIO_VOLUMES="/data/minio"' | sudo tee -a /etc/default/minio
    echo 'export MINIO_OPTS="--address :9000 --console-address :9001"' | sudo tee -a /etc/default/minio
    source /etc/default/minio
    
    1. 启动服务(两种方式二选一)
      • 直接运行:
        minio server $MINIO_VOLUMES $MINIO_OPTS
        
      • 以 systemd 管理(推荐):
        sudo useradd -r -s /usr/sbin/nologin minio
        sudo chown -R minio:minio /data/minio
        sudo tee /etc/systemd/system/minio.service >/dev/null <<'EOF'
        [Unit]
        Description=MinIO
        After=network.target
        
        [Service]
        User=minio
        Group=minio
        EnvironmentFile=/etc/default/minio
        ExecStart=/usr/local/bin/minio server $MINIO_VOLUMES $MINIO_OPTS
        Restart=always
        LimitNOFILE=65536
        
        [Install]
        WantedBy=multi-user.target
        EOF
        sudo systemctl daemon-reload
        sudo systemctl enable --now minio
        
    2. 访问控制台:浏览器打开 http://服务器IP:9001,使用设置的账号密码登录。
  • Docker Compose 方式(便于与业务同机编排)

    sudo apt update && sudo apt install -y docker.io docker-compose
    cat > docker-compose.yml <<'EOF'
    version: "3.8"
    services:
      minio:
        image: minio/minio
        container_name: minio
        command: server /data
        volumes:
          - ./data:/data
        ports:
          - "9000:9000"
          - "9001:9001"
        environment:
          MINIO_ROOT_USER: admin
          MINIO_ROOT_PASSWORD: YourStrongP@ssw0rd
    EOF
    docker-compose up -d
    

    访问 http://服务器IP:9001 进入控制台。

二 网络与防火墙

  • 放行端口(示例为 UFW)
    sudo ufw allow 9000/tcp
    sudo ufw allow 9001/tcp
    sudo ufw reload
    
  • 云服务器安全组需同时放行 9000/9001/TCP

三 应用集成示例

  • Java(MinIO Java SDK ≥ 8.x
    <dependency>
      <groupId>io.minio</groupId>
      <artifactId>minio</artifactId>
      <version>8.5.6</version>
    </dependency>
    
    import io.minio.*;
    import io.minio.messages.Bucket;
    
    MinioClient client = MinioClient.builder()
        .endpoint("http://服务器IP:9000")
        .credentials("admin", "YourStrongP@ssw0rd")
        .build();
    
    boolean exists = client.bucketExists(BucketExistsArgs.builder().bucket("my-bucket").build());
    if (!exists) {
      client.makeBucket(MakeBucketArgs.builder().bucket("my-bucket").build());
    }
    
  • Python(minio-py)
    pip install minio
    
    from minio import Minio
    
    client = Minio(
        "服务器IP:9000",
        access_key="admin",
        secret_key="YourStrongP@ssw0rd",
        secure=False
    )
    
    buckets = client.list_buckets()
    for b in buckets:
        print(b.name)
    
  • 其他语言(Go、Node.js 等)均可使用 S3 兼容 的 SDK,Endpoint 指向 http://服务器IP:9000,AccessKey/SecretKey 使用上面配置的值。

四 安全与运维要点

  • 使用非 root 运行 MinIO(如创建系统用户 minio 并授权数据目录),并为 MINIO_ROOT_USER / MINIO_ROOT_PASSWORD 设置强口令。
  • 建议启用 HTTPS:可使用 Let’s Encrypt 证书或企业 CA;证书与私钥放置在 /etc/minio/certs/(例如 private.key / public.crt),然后重启服务使 MinIO 自动启用 TLS。
  • 生产建议通过 反向代理(Nginx) 暴露控制台与 API,便于统一证书、限流与鉴权;示例 Nginx 可将 9001 反向代理到内网 MinIO 实例。
  • 备份与监控:定期备份 /data/minio 与配置目录;可对接 Prometheus/Grafana 做容量与请求监控。

0