扩展 MinIO 租户
此过程介绍了如何通过在 Kubernetes 基础设施中部署其他 MinIO Pod 池来扩展现有 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 租户。
查看描述租户对象的 Kustomization 对象(
tenant.yaml
)。spec.pools
数组描述当前的池拓扑。向
spec.pools
数组添加一个新条目。新池必须反映您预期的 Worker 节点、每个服务器的卷数、存储类以及亲和性/调度程序设置的组合。有关池相关配置设置的完整文档,请参阅MinIO 自定义资源定义。
应用更新的租户配置
使用
kubectl apply
命令更新租户kubectl apply -k ~/kustomization/TENANT-NAME
修改 Kustomization 目录的路径以匹配您的本地配置。
查看 Helm
values.yaml
文件。tenant.pools
数组描述了当前的池拓扑结构。在
tenant.pools
数组中添加一个新的条目。新池必须反映您预期的 Worker 节点、每个服务器的卷数、存储类以及亲和性/调度程序设置的组合。有关与池相关的配置设置的更完整文档,请参阅 租户 Helm 图表。
应用更新的租户配置
使用
helm upgrade
命令更新租户。helm upgrade TENANT-NAME minio-operator/tenant -f values.yaml -n TENANT-NAMESPACE
上述命令假设使用了 MinIO Operator Chart 存储库。如果您手动安装了图表或使用不同的存储库名称,请在命令中指定该图表或名称。
将
TENANT-NAME
和TENANT-NAMESPACE
分别替换为租户的名称和命名空间。您可以使用helm list -n TENANT-NAMESPACE
验证租户名称。
您可以使用 kubectl get events -n TENANT-NAMESPACE --watch
监控扩展进度。MinIO Operator 更新服务以在新的节点上适当地路由连接。如果您使用自定义服务、路由、入口或类似的 Kubernetes 网络组件,则可能需要更新这些组件以适应新的 Pod 主机名范围。
停用租户服务器池
停用服务器池涉及三个步骤
针对租户运行
mc admin decommission start
命令等待停用完成
修改租户 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}
重要
您不能对停用的池重用相同的池名称或主机名序列。