文档

扩展 MinIO 租户

此过程介绍了如何通过在 Kubernetes 基础设施中部署其他 MinIO Pod 池来扩展现有 MinIO 租户的可用存储容量。

重要

MinIO 运算符控制台在运算符 6.0.0 中已弃用并移除。

有关通过运算符控制台安装的租户迁移到 Kustomization 的说明,请参阅修改 MinIO 租户

先决条件

MinIO Kubernetes 运算符

此页面上的此过程**需要**有效安装 MinIO Kubernetes 运算符,并假设本地主机具有匹配的 MinIO Kubernetes 运算符安装。此过程假设使用最新的稳定运算符,版本 6.0.4。

有关部署 MinIO 运算符的完整文档,请参阅部署 MinIO 运算符

可用的工作节点

MinIO 部署其他minio server Pod 作为新租户池的一部分。Kubernetes 集群**必须**具有足够的可用工作节点来调度新 Pod。

MinIO 运算符提供用于控制 Pod 亲和性和反亲和性的配置,以将调度引导到特定的工作节点。

持久卷

对驱动器的独占访问

MinIO**需要**对为对象存储提供的驱动器或卷进行*独占*访问。任何其他进程、软件、脚本或人员都不应直接对提供给 MinIO 的驱动器或卷或 MinIO 在其上放置的对象或文件执行*任何*操作。

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

在 EKS 上的 MinIO 租户必须使用EBS CSI 驱动程序来预配必要的底层持久卷。MinIO 强烈建议使用 SSD 支持的 EBS 卷以获得最佳性能。有关 EBS 资源的更多信息,请参阅EBS 卷类型

步骤

MinIO 运算符支持通过添加其他池来扩展 MinIO 租户。

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

    spec.pools 数组描述当前的池拓扑。

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

    新池必须反映您预期的 Worker 节点、每个服务器的卷数、存储类以及亲和性/调度程序设置的组合。有关池相关配置设置的完整文档,请参阅MinIO 自定义资源定义

  3. 应用更新的租户配置

    使用kubectl apply 命令更新租户

    kubectl apply -k ~/kustomization/TENANT-NAME
    

    修改 Kustomization 目录的路径以匹配您的本地配置。

  1. 查看 Helm values.yaml 文件。

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

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

    新池必须反映您预期的 Worker 节点、每个服务器的卷数、存储类以及亲和性/调度程序设置的组合。有关与池相关的配置设置的更完整文档,请参阅 租户 Helm 图表

  3. 应用更新的租户配置

    使用 helm upgrade 命令更新租户。

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

    上述命令假设使用了 MinIO Operator Chart 存储库。如果您手动安装了图表或使用不同的存储库名称,请在命令中指定该图表或名称。

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

您可以使用 kubectl get events -n TENANT-NAMESPACE --watch 监控扩展进度。MinIO Operator 更新服务以在新的节点上适当地路由连接。如果您使用自定义服务、路由、入口或类似的 Kubernetes 网络组件,则可能需要更新这些组件以适应新的 Pod 主机名范围。

停用租户服务器池

停用服务器池涉及三个步骤

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

  2. 等待停用完成

  3. 修改租户 YAML 以删除停用的池

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

停用和添加时保持池顺序

如果您在多池部署中停用了一个池,则不能对新池使用相同的节点序列。例如,考虑以下池的部署

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}

重要

您不能对停用的池重用相同的池名称或主机名序列。