文档

扩展 MinIO 租户

此步骤记录了通过在 Kubernetes 基础设施中部署额外的 MinIO pod 池来扩展现有 MinIO 租户的可用存储容量。

重要

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

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

先决条件

MinIO Kubernetes 运算符

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

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

可用的工作节点

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

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

持久卷

对驱动器的独占访问

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

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

MinIO 可以使用任何支持持久卷 (PV) 的 Kubernetes ReadWriteOnce 访问模式。MinIO 的一致性保证需要 ReadWriteOnce 提供的独占存储访问权限。

对于节点具有直接连接存储的 Kubernetes 集群,MinIO 强烈建议使用DirectPV CSI 驱动程序。DirectPV 提供了一个分布式持久卷管理器,可以跨 Kubernetes 节点发现、格式化、挂载、调度和监视驱动器。DirectPV 解决了手动配置和监视本地持久卷 的限制。

过程

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

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

    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 存储库。如果您手动或使用不同的存储库名称安装了 Chart,请在命令中指定该 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}

重要

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