扩展MinIO多租户
本过程记录了通过在Kubernetes基础设施中部署一组额外的MinIO Pod来扩展现有MinIO租户的可用存储容量。
重要
MinIO 操作员控制面板已被弃用,并在 Operator 6.0.0 中移除。
有关将通过操作员控制面板安装的租户迁移到 Kustomization 的说明,请参阅 minio-k8s-modify-minio-tenant。
先决条件
MinIO Kubernetes
此页面上的过程 需要 有效的MinIO Kubernetes Operator安装,并假定本地主机具有匹配的MinIO Kubernetes Operator安装。 此过程假定安装了最新的稳定Operator版本 7.1.1。
有关部署MinIO Operator的完整文档,请参考和阅读 部署MinIO操作员。
可用的工作节点
作为新的租户池的一部分,MinIO将部署额外的 minio服务器
Pod。
Kubernetes集群 必须 具有足够的可用工作节点来调度新的Pod。
MinIO Operator提供配置以控制Pod的亲和性和反亲和性,以将调度定向到特定的工作节点。
持久卷
Exclusive access to drives
MinIO 要求 专有 对提供给对象存储的驱动器或卷的访问。 其他任何进程、软件、脚本或人员都不得直接对提供给MinIO的驱动器或卷执行 任何 操作,也不得对MinIO放置在其上的对象或文件执行操作。
除非由MinIO工程部门指导,否则不要使用脚本或工具直接修改、删除或移动提供给MinIO的驱动器上的任何数据片段、校验片段或元数据文件,包括从一个驱动器或节点移动到另一个驱动器或节点。 这些操作很可能会导致广泛的数据损坏和丢失,超出了MinIO的修复能力。
MinIO可以使用任何支持 ReadWriteOnce 访问模式的Kubernetes 持久卷(Persistent Volume, PV)。
MinIO的一致性保证要求独占存储访问,而 ReadWriteOnce
提供了这种方式。
对于节点具有直接附加存储(Direct Attached Storage)的Kubernetes集群,MinIO强烈建议使用 DirectPV CSI驱动程序。 DirectPV提供了一个分布式持久卷管理器,可以在Kubernetes节点之间发现、格式化、挂载、调度和监视驱动器。 DirectPV解决了手动配置和监视 本地持久卷(Local Persistent Volumes) 的限制。
操作步骤 (操作员控制台)
Procedure
MinIO 操作员支持通过添加额外的池来扩展 MinIO 租户。
查看描述租户对象的 Kustomization 对象(
tenant.yaml
)。``spec.pools `` 数组描述了当前的池拓扑结构。
在
spec.pools
数组中添加新条目。新池必须反映你所希望的 Worker 节点、每台服务器卷、存储类别和亲和/调度程序设置的组合。 有关 Pool 相关配置设置的更完整文档,请参阅 MinIO 自定义资源定义。
应用更新的租户配置
使用
kubectl apply
命令更新租户:kubectl apply -k ~/kustomization/TENANT-NAME
修改 Kustomization 目录的路径,使其与本地配置相匹配。
查看 Helm
values.yaml
文件。``tenant.pools `` 数组描述了当前的池拓扑结构。
在
tenant.pools
数组中添加新条目。新池必须反映你所希望的 Worker 节点、每台服务器卷、存储类别和亲和/调度程序设置的组合。 有关 Pool 相关配置设置的更完整文档,请参阅 多租户 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
字段包含所有剩余池的值。
Maintain pool order when decommissioning and then adding
如果在多池部署中停用一个池, 不能将相同的节点序列用于新池. 例如,考虑一个部署,其中有以下资源池:
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}
重要
不能为已退出的池重复使用相同的池名称或主机名序列。