MinIO 在混合云或多云部署场景中充当一致的存储层。
MinIO 是 Kubernetes 原生且高性能的,它可以在公共云、私有云和边缘云环境中提供可预测的性能。
在 EKS 上运行 MinIO 可以控制软件堆栈,并具有避免云锁定所需的灵活性。
Amazon Elastic Kubernetes Service (Amazon EKS) 是一种托管服务,您可以使用它在 AWS 上运行 Kubernetes,而无需安装、操作和维护自己的 Kubernetes 控制平面或节点。
MinIO 在所有主要的 Kubernetes 平台(Tanzu、Azure、GCP、OpenShift)上提供可移植的高性能对象存储系统。在 AWS 上,MinIO 与 Amazon EKS 服务原生集成,使您能够更轻松地操作自己的大规模多租户对象存储即服务。MinIO 是 AWS S3 存储即服务的完整替代品。
与 AWS S3 不同,MinIO 使应用程序能够跨多云和混合云基础设施扩展,而无需昂贵的软件重写或专有集成。由于 MinIO 是容器化且 Kubernetes 原生的,因此它可以在这些平台上推出,而无需专门的技能来操作大规模存储基础设施。
在 EKS 和 AWS 上大规模部署 MinIO 的一个关键要求是能够跨 AWS 存储类型转换对象。具体来说,您需要支持成本优化的“热-温”和“热-冷”部署拓扑。
MinIO 可以使用 S3 存储桶作为远程层,根据用户配置的规则自动转换已过期的对象。例如,您可以创建一个规则将对象转换到具有 S3 标准存储类的层,而另一个规则将对象转换到具有 S3 标准-IA 存储类的层。
MinIO 支持一次转换对象 - 因此,虽然您无法配置从 MinIO -> 标准 -> 标准-IA 的“瀑布”或“链式”转换,但您可以使用前缀和对象标签为每个存储桶配置多个规则,以将粒度转换行为应用于首选的远程层。MinIO 的唯一要求是远程存储必须支持立即检索对象 - 无需重新水化、延迟或等待时间。
MinIO 分层无需客户端逻辑更改。您的客户端可以继续通过 MinIO 请求对象,MinIO 处理从 S3 检索对象并将其透明地返回。MinIO 还支持使用 S3 还原 API 将对象返回到“热”MinIO 部署。
MinIO 的分层功能扩展到混合云环境,其中 MinIO JBOD/JBOF 部署充当私有云上的性能优化的“热”层,而 S3 提供成本优化的“温”和“冷”层。利用 MinIO TLS 和服务器端加密进一步保护两个云中所有数据,无论处于静止状态还是传输中。
MinIO Operator 与 AWS Elastic Load Balancer (ELB) 深度集成,为访问存储服务的外部应用程序提供跨多个 MinIO 租户的自动负载均衡和路由服务。只需向 MinIO 租户添加注释,即可将 MinIO 租户公开到外部流量。此服务使应用程序能够扩展,并能够被全球数亿台设备访问。
对于云原生应用程序,最佳实践建议将密钥存储在对象系统外部的外部保管库中。Amazon Key Management Service (KMS) 是一种安全且弹性的服务,用于通过 API 跨 AWS 服务管理密钥。
对于具有更严格安全要求或出于一致性目的的用户,MinIO 集成了许多在 AWS 外部运行的外部密钥管理服务。
在公共 EKS 环境中使用 MinIO 作为对象存储时,强烈建议启用磁盘上的加密。MinIO 使用 AES-256-GCM 或 ChaCha20-Poly1305 加密来保护数据完整性和机密性,同时对性能的影响微乎其微。MinIO Operator 允许为租户配置 Amazon KMS 或受支持的第三方 KMS,以自动对对象进行服务器端加密。
MinIO 支持在 KMS 中设置桶级别的默认加密密钥,并支持 AWS-S3 语义 (SSE-S3)。客户端还可以使用 SSE-KMS 请求头在 KMS 上指定单独的密钥。
MinIO 将使用此 KMS 引导其内部密钥加密服务器(KES 服务),以启用高性能的每个对象加密。每个租户在其隔离的命名空间中运行自己的 KES 服务器。
在 AWS EKS 上运行 MinIO 时,客户可以通过 Amazon 托管的身份管理服务或第三方 OpenID Connect/LDAP 兼容身份提供商(如 Keycloak、Okta/Auth0、Google、Facebook、ActiveDirectory 和 OpenLDAP)管理单点登录 (SSO)。
单个集中式 IDP 允许管理员添加、更改或删除用户、服务帐户或组的权限,并且只需执行一次,即可在所有公有云、私有云和边缘 MinIO 服务器上执行。能够拥有独立于基础设施的统一身份和访问管理 (IAM) 层,提供了显著的架构灵活性。
从应用程序到 MinIO 的所有流量(包括节点间流量)都使用 TLS 进行加密。TLS 证书用于保护网络通信并建立网络连接资源(例如 MinIO 服务器域名)的身份。
MinIO 与 AWS Certificate Manager 集成,以自动配置、预配、管理和更新 MinIO 租户的证书。租户在其自己的 Kubernetes 命名空间中彼此完全隔离,并拥有自己的证书,以提高安全性。
MinIO 建议使用 Amazon Managed Service for Prometheus (AMP) 来监控和警报 MinIO EKS 实例。MinIO 发布了所有可想象到的与对象存储相关的 Prometheus 指标,从桶容量到访问指标。这些指标可以在任何与 Prometheus 兼容的工具或 MinIO 控制台中收集和可视化。
外部监控解决方案定期抓取 MinIO Prometheus 端点。MinIO 根据架构目标建议使用 Grafana 或 Amazon Managed Service for Prometheus (AMP)。这些相同的工具也可用于建立基线并为通知设置警报阈值,然后可以将这些阈值路由到通知平台,例如 PagerDuty、Freshservice 甚至 SNMP。