扩展 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 的修复能力。
MinIO 可以使用任何支持 ReadWriteOnce 访问模式的 Kubernetes 持久卷 (PV)。MinIO 的一致性保证要求 ReadWriteOnce
提供的独占存储访问。
对于节点具有直接连接存储的 Kubernetes 集群,MinIO 强烈建议使用 DirectPV CSI 驱动程序。DirectPV 提供了一个分布式持久卷管理器,可以跨 Kubernetes 节点发现、格式化、挂载、调度和监控驱动器。DirectPV 克服了手动配置和监控 本地持久卷 的限制。
步骤
MinIO 运算符支持通过添加其他池来扩展 MinIO 租户。
查看描述租户对象的 Kustomization 对象 (
tenant.yaml
)。spec.pools
数组描述了当前的池拓扑结构。向
spec.pools
数组添加新条目。新池必须反映您预期的工作节点、每个服务器的卷数、存储类以及亲和性/调度程序设置的组合。有关池相关配置设置的更完整文档,请参阅 MinIO 自定义资源定义。
应用更新的租户配置
使用
kubectl apply
命令更新租户kubectl apply -k ~/kustomization/TENANT-NAME
修改 Kustomization 目录的路径以匹配您的本地配置。
查看 Helm
values.yaml
文件。tenant.pools
数组描述了当前的池拓扑结构。向
tenant.pools
数组添加新条目。新池必须反映您预期的工作节点、每个服务器的卷数、存储类以及亲和性/调度程序设置的组合。有关池相关配置设置的更完整文档,请参阅 租户 Helm 图表。
应用更新的租户配置
使用
helm upgrade
命令更新租户helm upgrade TENANT-NAME minio-operator/tenant -f values.yaml -n TENANT-NAMESPACE
上面的命令假设使用 MinIO 运算符图表存储库。如果您手动安装图表或使用不同的存储库名称安装图表,请在命令中指定该图表或名称。
将
TENANT-NAME
和TENANT-NAMESPACE
分别替换为租户的名称和命名空间。您可以使用helm list -n TENANT-NAMESPACE
验证租户名称。
您可以使用 kubectl get events -n TENANT-NAMESPACE --watch
监控扩展进度。MinIO 运算符更新服务以在新的节点上适当路由连接。如果您使用自定义服务、路由、入口或类似的 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}
重要
您不能对停用的池重用相同的池名称或主机名序列。