MinIO Tenants on Kubernetes
MinIO租户由部署在命名空间内的一整套Kubernetes资源组成,这些资源共同支持MinIO对象存储服务。
本文档假设MinIO Operator 安装在目标 Kubernetes 基础设施上。
前提条件
您的 Kubernetes 基础设施必须满足以下部署 MinIO 租户的先决条件。
MinIO Kubernetes Operator
本页面上的程序需要一个有效的 MinIO Kubernetes Operator 安装,并假设本地主机安装了匹配的 MinIO Kubernetes Operator。 此过程假设使用最新的稳定 Operator 版本 OPERATOR。
看在 Kubernetes 上部署 MinIO有关部署 MinIO Operator 的完整文档。
带本地存储的工作节点
MinIO强烈建议将租户部署到具有本地附加存储的Kubernetes工作节点上。
Worker Nodes 应该满足 MinIO 的硬件检查清单用于生产环境。
避免将MinIO租户与其他高性能软件部署在同一工作节点上,如确需共置,请务必配置适当的限制和约束条件,以确保MinIO能够获取必要的计算和存储资源。
Persistent Volumes
驱动器独占访问
MinIO需要 独家对象存储所提供的驱动器或卷的访问权限。 任何其他进程、软件、脚本或人员均不得执行任何直接对提供给 MinIO 的驱动器或卷,或 MinIO 置于其上的对象或文件执行操作。
除非得到 MinIO 工程团队指示,否则不得使用脚本或工具直接修改、删除或移动所提供驱动器上的任何数据分片、校验分片或元数据文件,包括在不同驱动器或节点间的转移操作。 此类操作极有可能导致大范围损坏和数据丢失,超出 MinIO 的自我修复能力范围。
MinIO 通常可以使用任何 KubernetesPersistent Volume (PV)支持ReadWriteOnce访问模式。
MinIO的一致性保证需要独占存储访问权限,ReadWriteOnce提供。
此外,MinIO 建议将回收策略设置为Retain对于 PVCStorageClass在可能的情况下,请将存储类、CSI 或其他 PV 底层配置程序配置为将卷格式化为 XFS,以确保最佳性能。
对于具有直连存储的Kubernetes集群,MinIO强烈建议使用DirectPV CSI 驱动程序DirectPV 提供了一个分布式持久卷管理器,能够跨 Kubernetes 节点实现驱动器的发现、格式化、挂载、调度和监控。 DirectPV 解决了手动配置和监控的限制本地持久化卷.
对于在 Amazon Elastic、Azure 或 Google Kubernetes 上进行部署的租户,请选择以下选项卡以获取有关 PV 配置的具体指导:
MinIO Tenants on EKS 必须使用EBS CSI Driverto provision the necessary underlying persistent volumes.
MinIO强烈建议使用SSD支持的EBS卷以获得最佳性能。
MinIO强烈建议使用XFS文件系统部署基于EBS的PV。
为MinIO EBS PV创建StorageClass并设置csi.storage.k8s.io/fstype 参数 to xfs .
MinIO 推荐以下配置EBS 卷类型:
io2(预配置 IOPS SSD)首选io1(预配置 IOPS SSD)gp3(通用型 SSD)gp2(通用型 SSD)
有关 EBS 资源的更多信息,请参阅EBS 卷类型有关 StorageClass 参数的更多信息,请参阅StorageClass 参数.
MinIO Tenants on GKE 应该使用Compute Engine Persistent Disk CSI Driver配置必要的基础持久卷。
MinIO 推荐以下配置GKE CSI Driver存储类别:
standard-rwo(均衡型持久化 SSD)premium-rwo(性能持久型 SSD)
MinIO 强烈推荐使用 SSD 支持的磁盘类型以获得最佳性能。 有关 GKE 磁盘类型的更多信息,请参阅持久化磁盘.
AKS 上的 MinIO 租户应使用Azure Disks CSI driver配置必要的基础持久卷。
MinIO 推荐以下配置AKS CSI Driver存储类别:
managed-csi(标准 SSD)managed-csi-premium(Premium SSD)
MinIO 强烈推荐使用 SSD 支持的磁盘类型以获得最佳性能。 有关 AKS 磁盘类型的更多信息,请参阅Azure 磁盘类型.
Tenant Namespace
当您使用 Operator 创建租户时,租户必须在其自己的命名空间中。 在该命名空间内,Operator 会根据租户配置生成所需的 pod。
每个租户 Pod 运行三个容器:
运行所有标准 MinIO 功能的 MinIO 容器,等同于裸机上的基础 MinIO 安装。 该容器在提供的挂载点(持久化卷)中存储和检索对象。
InitContainer 仅在 Pod 启动期间存在,用于在启动过程中管理配置密钥。 一旦启动完成,该容器就会终止。
监控租户配置密钥并在其发生变化时进行更新的 SideCar 容器。 该容器还会监控根凭证,如果未找到根凭证则会创建错误。
从 v5.0.6 开始,MinIO Operator 支持自定义init containers用于您的环境可能需要的额外 Pod 初始化。
租户使用持久卷声明来与存储对象的持久卷进行通信。