MinIO for Microsoft AzureKubernetes 服务

客户出于三个原因在 Microsoft Azure Kubernetes Service (AKS) 上运行 MinIO。

01.

MinIO 充当混合云或多云部署中的一致性层,为 Azure 提供 S3 API 兼容性,并支持 AI/ML 工作负载的可移植性。

02.

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

03.

在 AKS 上运行 MinIO 可以控制软件堆栈,并灵活地避免云锁定。

AKS 是来自 Microsoft Azure 的一个高可用、安全且完全托管的 Kubernetes 服务。Azure Kubernetes Service (AKS) 提供无服务器 Kubernetes、集成的持续集成和持续交付 (CI/CD) 体验,以及企业级安全性和治理。

MinIO for Microsoft Azure Kubernetes Service (AKS)

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

MinIO 运算符与AKS 和 Azure 功能本地集成以提供

Storage Classes and Tiering
存储类和分层
跨 Azure SSD 托管磁盘(Azure CSI 卷)、Azure BlobStore 和 Azure 冷存储分层。
External Load Balancing
外部负载均衡
使用 Azure 负载均衡器平衡传入请求。
Encryption Key Management
加密密钥管理
使用 Azure 密钥保管库管理加密密钥。
Identity Management
身份管理
使用 Azure Active Directory 管理身份和策略。
Certificate Management
证书管理
使用 JetStack 证书管理器和 Let’s Encrypt 配置和管理证书。
Monitoring and Alerting
监控和警报
使用 Azure Monitor 跟踪指标并发出警报。
Logging and Auditing
日志记录和审计
将日志输出到 Azure Monitor 以进行分析。

存储类和分层

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

MinIO 可以使用 Azure Blob 作为远程层,根据用户配置的规则自动转换过期的对象。例如,您可以创建一个规则将对象转换到具有 Azure“热”访问层的层,而另一个规则将对象转换到具有 Azure“冷”访问层的层。

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

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

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

外部负载均衡

AKS 提供内置的 Azure 负载均衡器,可在访问存储服务的多个 MinIO 租户之间提供自动负载均衡和路由服务,这些应用程序是从 AKS 外部访问存储服务的。可以通过简单地向 MinIO 租户添加注释来将 MinIO 租户公开到外部流量。

加密密钥管理

对于云原生应用程序,最佳实践规定将密钥存储在对象系统外部的外部保管库中。Azure Key Vault (AKV) 是一种安全且弹性的服务,用于通过 Azure 服务之间的 API 管理密钥。

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

在 AKS 的公共实例中使用 MinIO 作为对象存储时,强烈建议启用磁盘加密。MinIO 使用 AES-256-GCM 或 ChaCha20-Poly1305 加密来保护数据完整性和机密性,而不会影响性能。MinIO 运算符允许配置租户以使用 Azure Key Vault 或受支持的第三方 KMS,以便自动执行对象的服务器端加密。

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

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

身份服务

在 AKS 上运行 MinIO 时,客户可以通过 Azure Active Directory 或第三方 OpenID Connect/LDAP 兼容身份提供商(如 Okta/Auth0、Google、Facebook、Keycloak 和 OpenLDAP)管理单点登录 (SSO)。

外部 IDP 允许管理员集中管理用户/应用程序身份。MinIO 基于 IDP,提供 AWS IAM 风格的用户、组、角色、策略和令牌服务 API。能够拥有一个独立于基础设施的统一身份和访问管理 (IAM) 层提供了显著的架构灵活性。

证书管理

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

AKS 使用 Jetstack cert-manager 自动生成和配置 Let's Encrypt 证书。MinIO 集成 Jetstack cert-manager,因此您可以使用 MinIO 运算符配置、预配、管理和更新 MinIO 租户的证书。租户在其自己的 Kubernetes 命名空间中彼此完全隔离,并拥有自己的证书,以提高安全性。

监控和警报

MinIO 建议在 AKS 上部署 MinIO 时使用 Azure Monitor 作为与 Prometheus 兼容的系统进行监控和警报。MinIO 发布了所有可以想象到的与对象存储相关的 Prometheus 指标,从存储桶容量到访问指标。这些指标可以在 Azure Monitor、Grafana、MinIO 控制台或任何用于 Azure Kubernetes Service 监控的与 Prometheus 兼容的工具中收集和可视化。

这些相同的工具也可用于建立基线并为通知设置警报阈值,然后可以将这些阈值路由到通知平台,例如 PagerDuty、Freshservice 甚至 SNMP。

日志记录和审计

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

MinIO 支持将日志发送到 Azure Monitor 并使用 Log Analytics 功能。

了解有关 MinIO for Azure Kubernetes Service 的更多信息

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