用于亚马逊云 Kubernetes 服务的 MinIO

客户出于以下三个原因在亚马逊云使用 Kubernetes 服务 (Amazon EKS) 上运行 MinIO。

01.
MinIO 在混合云或多云部署场景中充当一致的存储层。
02.
MinIO 是 Kubernetes 原生和高性能,它可以在公共、私有和边缘云环境中提供可预测的性能。
03.
在 EKS 上运行 MinIO 提供了对软件堆栈的控制以及避免云锁定所需的随之而来的灵活性。

架构

Amazon Elastic Kubernetes Service (Amazon EKS) 是一种托管服务,您可以使用它在 AWS 上运行 Kubernetes,而无需安装、操作和维护您自己的 Kubernetes 控制平面或节点。

MinIO 在所有主要的 Kubernetes 平台(Tanzu微软云, 谷歌云 , OpenShift)。 在 AWS 上,MinIO 与 Amazon EKS 服务原生集成,使您可以更轻松地将自己的大规模多租户对象存储作为服务来运营。 MinIO 是 AWS S3 存储即服务的完全替代品。

用于亚马逊云 Kubernetes 服务的 MinIO

与 AWS S3 不同,MinIO 使应用程序能够跨多云和混合云基础设施进行扩展,而无需昂贵的软件重写或专有集成。 因为 MinIO 是容器化的并且是 Kubernetes 原生的,所以它可以跨这些平台推出,而不需要专业技能来操作大规模存储基础设施。

The MinIO Operator integrates natively with EKS and AWS features to provide:

存储类别和分层
存储类别和分层
跨 AWS EBS、S3、S3 IA 和 Glacier 分层。
External Load Balancing
外部负载均衡
Load balance incoming requests with AWS Elastic Load Balancing.
加密密钥管理
加密密钥管理
使用 AWS Key Management Service 管理加密密钥。
身份管理
身份管理
使用 AWS Directory Service 和 AWS Identity Service 管理身份和策略。
证书管理
证书管理
使用 AWS Certificate Manager 配置和管理证书。
监控和警报
监控和警报
使用 AWS Managed Prometheus 跟踪指标并发出警报。
日志记录和审计
日志记录和审计
将日志输出到 AWS ElasticSearch 进行分析。
注意:如果 AWS 是唯一预期的实例,MinIO 不建议在 AWS 中运行 MinIO。 相反,AWS 中的 MinIO 应该保留用于组织寻求跨多个环境的一致性的场景。

存储类别和分层

在 EKS 和 AWS 上大规模部署 MinIO 的一个关键要求是能够跨 AWS 存储类型转换对象。 具体来说,您需要支持成本优化的“热-温”和“热-冷”部署拓扑。

MinIO 可以使用 S3 存储桶作为远程层,根据用户配置的规则自动转换老化对象。 例如,您可以创建一个规则将对象转换到具有 S3 标准存储类的层,而另一个规则将对象转换到具有 S3 标准-IA 存储类的层。

MinIO 支持转换一个对象一次 - 所以虽然你不能从 MinIO 配置“瀑布式”或“链式”转换 - > Standard -> Standard-IA,您可以使用前缀和对象标签为每个存储桶配置多个规则,以将粒度转换行为应用于首选远程层。 MinIO 的唯一要求是远程存储必须支持立即检索对象——没有再水化、延迟或等待时间。

MinIO 分层不需要客户端逻辑更改。 您的客户可以继续通过 MinIO 请求对象,而 MinIO 会处理从 S3 检索对象并透明地返回它。 MinIO 还支持使用 S3 恢复 API 将对象返回到“热”MinIO 部署。

MinIO 的分层功能扩展到混合云环境,其中 MinIO JBOD/JBOF 部署充当私有云上性能优化的“热”层,而 S3 提供成本优化的“暖”和 “冷”层。 利用 MinIO TLS 和服务器端加密进一步保护两个云中的所有数据,包括静态数据和动态数据。

外部负载均衡

MinIO Operator 与 AWS 弹性负载均衡器 (ELB) 紧密集成,为从 AWS 外部访问存储服务的应用程序提供跨多个 MinIO 租户的自动负载均衡和路由服务。 将 MinIO 租户暴露给外部流量可以通过简单地向 MinIO 租户添加注释来完成。 该服务使应用程序能够扩展并被全球数亿台设备访问。

加密密钥管理

对于云原生应用程序,最佳实践要求将密钥存储在对象系统之外的外部保险库中。 Amazon Key Management Service (KMS) 是一种安全且有弹性的服务,用于通过跨 AWS 服务的 API 管理密钥。

对于那些具有更严格的安全要求或出于一致性目的的人,MinIO 集成了许多在 AWS 之外运行的外部密钥管理服务。

在公共 EKS 环境中使用 MinIO 作为对象存储时,强烈建议使用磁盘加密。 MinIO 使用 AES-256-GCM 或 ChaCha20-Poly1305 加密来保护数据的完整性和机密性,对性能的影响可以忽略不计。 MinIO Operator 允许为 Amazon KMS 或受支持的第三方 KMS 配置租户,以实现对象的自动服务器端加密。

MinIO 支持在 KMS 中设置桶级默认加密密钥,支持 亚马逊云-S3语义(SSE-S3)。 客户端还可以使用 SSE-KMS 请求标头在 KMS 上指定单独的密钥。

MinIO 将使用此 KMS 来引导其内部密钥加密服务器(KES 服务)以实现高性能的每个对象加密。 每个租户在隔离的命名空间中运行自己的 KES 服务器。

身份管理

在 AWS EKS 上运行 MinIO 时,客户可以通过 Amazon 托管的身份管理服务或第三方 OpenID Connect/LDAP 兼容身份提供商(如 Keycloak、Okta/Auth0)管理单点登录 (SSO) 、谷歌、Facebook、ActiveDirectory 和 OpenLDAP。

单个集中式 IDP 允许管理员一次性添加、更改用户、服务帐户或组的权限或删除 - 并在所有公共云、私有云和边缘计算中强制执行 MinIO 服务器。 拥有独立于基础设施的统一身份和访问管理 (IAM) 层的能力提供了显着的架构灵活性。

证书管理

从应用程序到 MinIO 的所有流量,包括节点间流量,都使用 TLS 加密。 TLS 证书用于保护网络通信并建立网络连接资源的身份,例如 MinIO 服务器域。

MinIO 与 AWS Certificate Manager 集成,为 MinIO 租户自动配置、配置、管理和更新证书。 租户在他们自己的 Kubernetes 命名空间中使用自己的证书彼此完全隔离,以提高安全性。

监控和警报

MinIO 建议在 MinIO EKS 实例上使用 Amazon Managed Service for Prometheus (AMP) 进行监控和报警。 MinIO 发布了所有可以想象到的与对象存储相关的 Prometheus 指标,从桶容量到访问指标。 这些指标可以在任何兼容 Prometheus 的工具或 MinIO 控制台中收集和可视化。

外部监控解决方案定期抓取 MinIO Prometheus 端点。 MinIO 根据架构目标推荐 Grafana 或 Amazon Managed Service for Prometheus (AMP)。 这些相同的工具也可用于建立基线和设置通知的警报阈值,然后可以将其路由到通知平台,例如 PagerDuty、Freshservice 甚至 SNMP。

日志记录和审计

启用 MinIO 审计会为对象存储集群上的每个操作生成一个日志。 除了审计日志之外,MinIO 还记录控制台错误以用于操作故障排除目的。

MinIO支持输出日志到AWS Elasticsearch(或第三方)进行分析和告警。

了解更多about 用于亚马逊云 Kubernetes 服务的 MinIO

您使用的是 Internet Explorer 版本 11 或更低版本。由于安全问题和缺乏对 Web 标准的支持,强烈建议您升级到现代浏览器。