中文文档

扩展MinIO多租户

本过程记录了通过在Kubernetes基础设施中部署一组额外的MinIO Pod来扩展现有MinIO租户的可用存储容量。

重要

MinIO 操作员控制面板已被弃用,并在 Operator 6.0.0 中移除。

有关将通过操作员控制面板安装的租户迁移到 Kustomization 的说明,请参阅 minio-k8s-modify-minio-tenant

先决条件

MinIO Kubernetes

此页面上的过程 需要 有效的MinIO Kubernetes Operator安装,并假定本地主机具有匹配的MinIO Kubernetes Operator安装。 此过程假定安装了最新的稳定Operator版本 7.1.1。

有关部署MinIO Operator的完整文档,请参考和阅读 deploy-operator-kubernetes

可用的工作节点

作为新的租户池的一部分,MinIO将部署额外的 minio服务器 Pod。 Kubernetes集群 必须 具有足够的可用工作节点来调度新的Pod。

MinIO Operator提供配置以控制Pod的亲和性和反亲和性,以将调度定向到特定的工作节点。

持久卷

Exclusive access to drives

MinIO 要求 专有 对提供给对象存储的驱动器或卷的访问。 其他任何进程、软件、脚本或人员都不得直接对提供给MinIO的驱动器或卷执行 任何 操作,也不得对MinIO放置在其上的对象或文件执行操作。

除非由MinIO工程部门指导,否则不要使用脚本或工具直接修改、删除或移动提供给MinIO的驱动器上的任何数据片段、校验片段或元数据文件,包括从一个驱动器或节点移动到另一个驱动器或节点。 这些操作很可能会导致广泛的数据损坏和丢失,超出了MinIO的修复能力。

在EKS上,MinIO的租户必须使用 EBS CSI驱动程序 来配置所需的底层持久卷。 为了获得最佳性能,MinIO强烈推荐使用基于SSD的EBS卷。 有关EBS资源的更多信息,请参考和阅读 EBS卷类型(EBS Volume Types).

操作步骤 (操作员控制台)

Procedure

MinIO 操作员支持通过添加额外的池来扩展 MinIO 租户。

  1. 查看描述租户对象的 Kustomization 对象( tenant.yaml )。

    ``spec.pools `` 数组描述了当前的池拓扑结构。

  2. spec.pools 数组中添加新条目。

    新池必须反映你所希望的 Worker 节点、每台服务器卷、存储类别和亲和/调度程序设置的组合。 有关 Pool 相关配置设置的更完整文档,请参阅 MinIO 自定义资源定义

  3. 应用更新的租户配置

    使用 kubectl apply 命令更新租户:

    kubectl apply -k ~/kustomization/TENANT-NAME
    

    修改 Kustomization 目录的路径,使其与本地配置相匹配。

  1. 查看 Helm values.yaml 文件。

    ``tenant.pools `` 数组描述了当前的池拓扑结构。

  2. tenant.pools 数组中添加新条目。

    新池必须反映你所希望的 Worker 节点、每台服务器卷、存储类别和亲和/调度程序设置的组合。 有关 Pool 相关配置设置的更完整文档,请参阅 多租户 Helm 图表

  3. 应用更新的租户配置

    使用 helm upgrade 命令更新租户:

    helm upgrade TENANT-NAME minio-operator/tenant -f values.yaml -n TENANT-NAMESPACE
    

    上述命令假定使用 MinIO 操作员图表存储库。 如果手动安装了图表或使用了不同的版本库名称,请在命令中指定该图表或名称。

    TENANT-NAMETENANT-NAMESPACE 分别替换为租户的名称和命名空间。 可以使用 helm list -n TENANT-NAMESPACE 验证租户名称。

您可以使用 kubectl get events -n TENANT-NAMESPACE --watch 监控扩展进度。 MinIO 操作员会更新服务,以便在新节点上适当路由连接。 如果使用定制的服务、路由、入口或类似的 Kubernetes 网络组件,可能需要针对新的 pod 主机名范围更新这些组件。

停用租户服务器池

停用服务器池包括三个步骤:

  1. 对租户运行 mc admin decommission start 命令

  2. 等待退役完成

  3. 修改租户 YAML 以移除退役池

删除租户池时,确保 spec.pools.[n].name 字段包含所有剩余池的值。

Maintain pool order when decommissioning and then adding

如果在多池部署中停用一个池, 不能将相同的节点序列用于新池. 例如,考虑一个部署,其中有以下资源池:

https://minio-{1...4}.example.net/mnt/drive-{1...4}
https://minio-{5...8}.example.net/mnt/drive-{1...4}
https://minio-{9...12}.example.net/mnt/drive-{1...4}

如果停用 minio-{5...8} 池, 不能添加具有相同节点编号的新池. 您必须在 minio-{9...12} *之后*添加新数据池:

https://minio-{1...4}.example.net/mnt/drive-{1...4}
https://minio-{9...12}.example.net/mnt/drive-{1...4}
https://minio-{13...16}.example.net/mnt/drive-{1...4}

重要

不能为已退出的池重复使用相同的池名称或主机名序列。

Join Slack 商业支持购买咨询