安装

Alauda Container Platform (ACP) Object Storage with MinIO 是基于 Apache License v2.0 开源协议的对象存储服务。它兼容 Amazon S3 云存储服务接口,非常适合存储大量非结构化数据,如图片、视频、日志文件、备份数据以及容器/虚拟机镜像。单个对象文件大小可任意,范围从几 KB 到最大 5 TB。

目录

前提条件

  • MinIO 构建于底层存储之上,请确保当前集群已创建存储类,推荐使用 TopoLVM。

  • 下载对应您平台架构的 Alauda Container Platform Storage Essentials 安装包。

  • 通过 Upload Packages 机制上传 Alauda Container Platform Storage Essentials 安装包。

  • 下载对应您平台架构的 Alauda Container Platform (ACP) Object Storage with MinIO 安装包。

  • 通过 Upload Packages 机制上传 Alauda Container Platform (ACP) Object Storage with MinIO 安装包。

操作步骤

部署 Alauda Container Platform Storage Essentials

  1. 登录,进入 Administrator 页面。

  2. 点击 Marketplace > OperatorHub,进入 OperatorHub 页面。

  3. 找到 Alauda Container Platform Storage Essentials,点击 Install,进入 Install Alauda Container Platform Storage Essentials 页面。

    配置参数:

    参数推荐配置
    Channel默认通道为 stable
    Installation ModeCluster:集群内所有命名空间共享单个 Operator 实例进行创建和管理,资源占用较低。
    Installation Place选择 Recommended,命名空间仅支持 acp-storage
    Upgrade StrategyManual:当 Operator Hub 有新版本时,需手动确认升级 Operator 至最新版本。

部署 Operator

  1. 在左侧导航栏点击 Storage > Object Storage

  2. 点击 Configure Now

  3. Deploy MinIO Operator 向导页面,点击右下角 Deploy Operator

    • 页面自动跳转下一步表示 Operator 部署成功。

    • 若部署失败,请根据界面提示执行 Clean Up Deployed Information and Retry,然后重新部署 Operator。

创建集群

  1. Create Cluster 向导页面,配置基础信息。

    参数描述
    Access Key访问密钥 ID。与私有访问密钥关联的唯一标识符,用于与访问密钥 ID 一起加密和签名请求。
    Secret Key与访问密钥 ID 配合使用的私有访问密钥,用于加密和签名请求,识别发送者并防止请求篡改。
  2. Resource Configuration 区域,根据以下说明配置规格。

    参数描述
    Small scale适用于处理最多 100,000 个对象,支持测试环境或数据备份场景中不超过 50 个并发访问。CPU 资源请求和限制默认设置为 2 核,内存资源请求和限制默认设置为 4 Gi。
    Medium scale面向企业级应用,需存储 1,000,000 个对象,支持最多 200 个并发请求。CPU 资源请求和限制默认设置为 4 核,内存资源请求和限制默认设置为 8 Gi。
    Large scale面向拥有 10,000,000 个对象存储需求和支持最多 500 个并发请求的集团用户,适用于高负载场景。CPU 资源请求和限制默认设置为 8 核,内存资源请求和限制默认设置为 16 Gi。
    Custom为有特定需求的专业用户提供灵活配置选项,确保服务规模和性能需求的精准匹配。注意:配置自定义规格时,请确保:
    • CPU 资源请求大于 100 m。
    • 内存资源请求大于或等于 2 Gi。
    • CPU 和内存资源限制大于或等于资源请求。
  3. Storage Pool 区域,根据以下说明配置相关信息。

    参数描述
    Instance Number增加 MinIO 集群中的实例数量可显著提升系统性能和可靠性,确保数据高可用。但实例过多可能导致:
    • 资源消耗增加。
    • 若节点承载多个实例,节点故障可能导致多个实例同时下线,降低整体集群可靠性。
    注意
    • 最小实例数为 4。
    • 实例数大于 16 时,输入值必须是 8 的倍数。
    • 添加额外存储池时,实例数不得少于第一个存储池的实例数。
    Single Storage Volume单个存储卷 PVC 的容量。每个存储服务管理一个存储卷。输入单个存储卷容量后,平台会自动计算存储池容量等信息,可在 Storage Pool Overview 中查看。
    Underlying StorageMinIO 集群使用的底层存储。请选择当前集群已创建的存储类,推荐使用 TopoLVM。
    Storage Nodes选择 MinIO 集群所需的存储节点,建议使用 4-16 个存储节点。平台会为每个选中的存储节点部署一个存储服务。
    Storage Pool Overview具体参数及计算公式请参见 Storage Pool Overview
  4. Access Configuration 区域,根据以下说明配置相关信息。

    参数描述
    External Access启用时支持跨集群访问 MinIO;禁用时仅支持集群内访问。
    Protocol支持 HTTP 和 HTTPS;选择 HTTPS 时需填写 Domain 并导入域名证书的 Public KeyPrivate Key
    注意
    • 访问协议为 HTTP 时,集群内 pod 可直接通过获取的 IP 或域名访问 MinIO,无需配置 IP 与域名映射;集群内节点可直接通过获取的 IP 访问 MinIO,若需域名访问,需手动配置 IP 与域名映射;外部访问可直接通过获取的 IP 访问。
    • 访问协议为 HTTPS 时,集群内外均无法通过 IP 访问 MinIO,需手动配置获取的 IP 与集群创建时填写的域名映射,方可通过域名正常访问。
    Access Method
    • NodePort:在每个计算节点主机上开放固定端口,将服务暴露到外部。配置域名访问时,建议使用 VIP 进行域名解析以保证高可用性。
    • LoadBalancer:使用负载均衡器将流量转发至后端服务。使用前请确保当前集群已部署 MetalLB 插件且外部地址池有可用 IP。
  5. 点击右下角 Create Cluster

    • 页面自动跳转至 Cluster Details 表示集群创建成功。

    • 若集群仍处于创建中,可点击 Cancel。取消后会清理已部署的集群信息,可返回集群创建页面重新创建集群。

创建 Bucket

登录集群控制节点,使用命令创建 bucket。

  1. 在集群详情页,点击 Access Method 标签查看 MinIO 访问地址,或使用以下命令查询。

    kubectl get svc -n <tenant ns> minio | grep -w minio | awk '{print $3}'

    注意:

    • tenant ns 替换为实际命名空间 minio-system
    • 示例:kubectl get svc -n minio-system minio | grep -w minio | awk '{print $3}'
  2. 获取 mc 命令。

    wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /bin/mc && chmod a+x /bin/mc
  3. 配置 MinIO 集群别名。

    • IPv4:

      mc --insecure alias set <minio cluster alias> http://<minio endpoint>:<port> <accessKey> <secretKey>
    • IPv6:

      mc --insecure alias set <minio cluster alias> http://[<minio endpoint>]:<port> <accessKey> <secretKey>
    • 域名:

      mc --insecure alias set <minio cluster alias> http://<domain name>:<port> <accessKey> <secretKey>
      mc --insecure alias set <minio cluster alias> https://<domain name>:<port> <accessKey> <secretKey>

    注意:

    • minio endpoint 填写步骤 1 获取的 IP 地址。
    • accessKeysecretKey 填写集群创建时生成的 Access KeySecret Key
    • 配置示例:
      • IPv4: mc --insecure alias set myminio http://12.4.121.250:80 07Apples@ 07Apples@
      • IPv6: mc --insecure alias set myminio http://[2004::192:168:143:117]:80 07Apples@ 07Apples@
      • 域名: mc --insecure alias set myminio http://test.minio.alauda:80 07Apples@ 07Apples@mc --insecure alias set myminio https://test.minio.alauda:443 07Apples@ 07Apples@
  4. 创建 bucket。

    mc --insecure mb <minio cluster alias>/<bucket name>

上传/下载文件

创建 bucket 后,可使用命令行上传文件至 bucket 或下载 bucket 中已有文件。

  1. 创建用于上传测试的文件。若上传已有文件,此步骤可跳过。

    touch <file name>
  2. 上传文件至 bucket。

    mc --insecure cp <file name> <minio cluster alias>/<bucket name>
  3. 查看 bucket 中的文件,确认上传成功。

    mc --insecure ls <minio cluster alias>/<bucket name>
  4. 删除已上传文件。

    mc --insecure rm <minio cluster alias>/<bucket name>/<file name>

相关信息

冗余因子映射表

注意:添加额外存储池时,冗余因子需根据第一个存储池的实例数计算。

实例数冗余因子
4 - 52
6 - 73
>= 84

Storage Pool Overview

Storage Pool Overview 参数计算公式
可用容量当实例数 ≤ 16 时,可用容量 = 单个存储卷容量 × (实例数 - 冗余因子)。
当实例数 > 16 时,可用容量 = 单个存储卷容量 × (实例数 - 4 × (实例数 + 15) / 16)。其中“4 × (实例数 + 15) / 16”的结果需向下取整。
总容量总容量 = 实例数 × 单个存储卷容量
可容忍故障存储服务数量当实例数 > 2 × 冗余因子时,可容忍故障存储服务数量 = 冗余因子。
当实例数 = 2 × 冗余因子时,可容忍故障存储服务数量 = 冗余因子 - 1