文档

扩展 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 可以使用任何支持 ReadWriteOnce 访问模式的 Kubernetes 持久卷 (PV)。MinIO 的一致性保证需要 ReadWriteOnce 提供的独占存储访问。

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

步骤

MinIO 运算符支持通过添加其他池来扩展 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 存储库。如果您手动安装了图表或使用不同的存储库名称,请在命令中指定该图表或名称。

    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}

重要

您不能对已取消委派的池重用相同的池名称或主机名序列。