扩展 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}
重要
您不能对停用的池重用相同的池名称或主机名序列。