扩展 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 可以使用任何支持 持久卷 (PV) 的 Kubernetes ReadWriteOnce 访问模式。MinIO 的一致性保证需要 ReadWriteOnce
提供的独占存储访问。
对于节点具有直接连接存储的 Kubernetes 集群,MinIO 强烈建议使用 DirectPV CSI 驱动程序。DirectPV 提供了一个分布式持久卷管理器,可以发现、格式化、挂载、调度和监控 Kubernetes 节点上的驱动器。DirectPV 解决了手动配置和监控 本地持久卷 的限制。
步骤
MinIO Operator 支持通过添加额外的池来扩展 MinIO 租户。
查看描述租户对象 (
tenant.yaml
) 的 Kustomization 对象。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 存储库。如果您手动安装了 Chart 或使用不同的存储库名称,请在命令中指定该 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}
重要
您不能对停用的池重复使用相同的池名称或主机名序列。