扩展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的完整文档,请参考和阅读 deploy-operator-kubernetes。
可用的工作节点
作为新的租户池的一部分,MinIO将部署额外的 minio服务器
Pod。
Kubernetes集群 必须 具有足够的可用工作节点来调度新的Pod。
MinIO Operator提供配置以控制Pod的亲和性和反亲和性,以将调度定向到特定的工作节点。
持久卷
Exclusive access to drives
MinIO 要求 专有 对提供给对象存储的驱动器或卷的访问。 其他任何进程、软件、脚本或人员都不得直接对提供给MinIO的驱动器或卷执行 任何 操作,也不得对MinIO放置在其上的对象或文件执行操作。
除非由MinIO工程部门指导,否则不要使用脚本或工具直接修改、删除或移动提供给MinIO的驱动器上的任何数据片段、校验片段或元数据文件,包括从一个驱动器或节点移动到另一个驱动器或节点。 这些操作很可能会导致广泛的数据损坏和丢失,超出了MinIO的修复能力。
在EKS上,MinIO的租户必须使用 EBS CSI驱动程序 来配置所需的底层持久卷。 为了获得最佳性能,MinIO强烈推荐使用基于SSD的EBS卷。 有关EBS资源的更多信息,请参考和阅读 EBS卷类型(EBS Volume Types).
操作步骤 (操作员控制台)
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}
重要
不能为已退出的池重复使用相同的池名称或主机名序列。