MinIO for GoogleKubernetes Engine

客户在 Google Kubernetes Engine (GKE) 上运行 MinIO 的原因有三个。

01.

MinIO 在混合云或多云部署场景中充当一致的存储层。

02.

MinIO 是 Kubernetes 原生的,并且具有高性能,它可以在公共云、私有云和边缘云环境中提供可预测的性能。

03.

在 GKE 上运行 MinIO 可以控制软件堆栈,并提供避免云锁定所需的灵活性。

Google Kubernetes Engine (GKE) 提供了一个高度自动化的安全且完全托管的 Kubernetes 平台。GKE 利用高可用性控制平面来支持多区域和区域集群。MinIO Operator 使用标准 Kubernetes 结构(如 StorageClass 和注释)与 GKE 原生集成。

MinIO for Google Kubernetes Engine

MinIO 在所有主要的 Kubernetes 平台(AWSAzureTanzuOpenShift)上提供了一个可移植的高性能对象存储系统。开发人员可以轻松获得适用于在 GKE 上运行的所有云原生应用程序的 Amazon S3 兼容持久存储服务。与 AWS S3 不同,MinIO 使应用程序能够扩展到任何多云和混合云基础设施,而无需昂贵的软件重写或专有集成。

MinIO Operator 集成与 GKE 和 GCP 功能原生集成,以提供

Storage Classes and Tiering
存储类和分层
在 GKE 标准 SSD、Google Cloud Storage 和 GCS(用于数据归档)之间分层。
External Load Balancing
外部负载均衡
使用 GCP Cloud Load Balancing 负载均衡传入请求。
Encryption Key Management
加密密钥管理
使用 GCP Cloud Key Management 管理加密密钥。
Identity Management
身份管理
使用 GCP Cloud Identity 管理身份和策略。
Certificate Management
证书管理
使用 GKE 托管证书配置和管理证书。
Monitoring and Alerting
监控和警报
使用 Google Cloud Stackdriver 跟踪指标并发出警报。
Logging and Auditing
日志记录和审计
将日志输出到 GCP Cloud Logging 或 Elastic Stack 以进行分析。

存储类和分层

在 GKE 和 GCP 上大规模部署 MinIO 的一个关键要求是能够在 Google Cloud 存储类型之间转换对象。具体而言,您需要支持成本优化的“热-温”和“热-冷”部署拓扑。

MinIO 可以使用 GCS 存储桶作为远程层,根据用户配置的规则自动转换已过期的对象。例如,您可以创建一个规则将对象转换到使用 GCS 标准存储类的层,而另一个规则将对象转换到使用 GCS 近线存储类的层。

MinIO 支持一次转换对象 - 因此,虽然您无法配置从 MinIO -> 标准 -> 近线“级联”或“链式”转换,但您可以使用前缀和对象标签为每个存储桶配置多个规则,以将粒度转换行为应用到首选的远程层。MinIO 唯一的要求是远程存储必须支持立即检索对象 - 无需重新水合、延迟或等待时间。

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

MinIO 的分层功能扩展到混合云环境,其中 MinIO JBOD/JBOF 部署充当私有云上的性能优化的“热”层,而 GCS 提供成本优化的“温”和“冷”层。利用 MinIO TLS 和服务器端加密进一步保护两个云中所有数据,无论是在静止状态还是传输过程中。

外部负载均衡

MinIO Operator 与 GCP Cloud Load Balancing (CLB) 紧密集成,为访问存储服务的应用程序提供跨多个 MinIO 租户的自动负载均衡和路由服务,这些应用程序来自 GKE 之外。通过简单地将注释添加到 MinIO 租户,可以将 MinIO 租户公开到外部流量。

加密密钥管理

MinIO 建议使用 Google Cloud Key Management 在对象存储系统外部存储密钥。对于那些有更严格的安全要求或出于一致性目的的用户,MinIO 集成了许多外部密钥管理服务,这些服务在 GCP 之外运行。

对于所有生产环境,我们建议默认情况下对所有存储桶启用加密。MinIO 使用 AES-256-GCM 或 ChaCha20-Poly1305 加密来保护数据完整性和机密性,对性能的影响可以忽略不计。

MinIO 支持在 KMS 中设置存储桶级别的默认加密密钥,并支持 AWS-S3 语义 (SSE-S3)。客户端还可以使用 SSE-KMS 请求标头在 KMS 上指定一个单独的密钥。

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

身份服务

在 GCP GKE 上运行 MinIO 时,客户可以通过 Google 托管的 GCP Cloud Identity 或第三方 OpenID Connect/LDAP 兼容身份提供者(如 Okta/Auth0、Google、Facebook、Keycloak、ActiveDirectory 和 OpenLDAP)管理单点登录 (SSO)。

单个集中式 IDP 允许管理员添加、更改用户、服务帐户或组的权限,或消除这些权限,并且此更改将在所有公有云、私有云和边缘 MinIO 服务器上生效。能够拥有独立于基础设施的统一身份和访问管理 (IAM) 层,提供了显著的架构灵活性。

证书管理

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

MinIO 与 GKE 托管证书集成,以配置、预配、管理和更新 MinIO 租户的证书。租户在自己的 Kubernetes 命名空间中完全相互隔离,并拥有自己的证书,以提高安全性。

监控和警报

GCP 为使用 Google Cloud Stackdriver 的 GKE 提供强大的监控功能。我们建议在 GKE 上部署 MinIO 时使用 Google Cloud Stackdriver 作为 Prometheus 兼容系统进行监控和警报。推荐这样做是因为 MinIO 发布了所有可以想象到的与对象存储相关的 Prometheus 指标,从存储桶容量到访问指标。这些指标可以在任何 Prometheus 兼容工具(Stackdriver 是 GCP 的原生工具)或 MinIO 控制台中收集和可视化。

监控服务定期抓取 MinIO Prometheus 端点。这些工具还可以用于建立基线并设置通知的警报阈值,然后可以将这些通知路由到通知平台,例如 PagerDuty 或 Freshservice。

日志记录和审计

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

MinIO 建议根据架构目标将日志输出到 GCP Cloud Logging 或 Elastic Stack。

了解有关 MinIO for Google Kubernetes Engine 的更多信息

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