AKS 是来自 微软云 的高度可用、安全且完全托管的 Kubernetes 服务。 Azure Kubernetes 服务 (AKS) 提供无服务器 Kubernetes、集成的持续集成和持续交付 (CI/CD) 体验以及企业级安全和治理。
MinIO 提供跨所有主要 Kubernetes 平台的便携式高性能对象存储系统(亚马逊云,Tanzu, 谷歌云 , OpenShift)。 开发人员可以轻松地为其在 AKS 上运行的所有云原生应用程序获取兼容 Amazon S3 的持久存储服务。 与 AWS S3 不同,MinIO 使应用程序能够跨任何多云和混合云基础设施进行扩展,而无需昂贵的软件重写或专有集成。
在 AKS 和 Azure 上大规模部署 MinIO 的一个关键要求是能够跨 Azure 云存储类型转换对象。 具体来说,您需要支持成本优化的“热-温”和“热-冷”部署拓扑。
MinIO 可以使用 Azure blob 作为远程层,根据用户配置的规则自动转换老化对象。 例如,您可以创建一个规则将对象转换到具有 Azure“热”访问层的层,而另一个规则将对象转换到具有 Azure“冷”访问层的层。
MinIO 支持转换一个对象一次 - 所以虽然你不能从 MinIO 配置“瀑布式”或“链式”转换 - >“热”->“冷”,您可以使用前缀和对象标签为每个存储桶配置多个规则,以将精细的转换行为应用于首选远程层。 MinIO 的唯一要求是远程存储必须支持立即检索对象——没有再水化、延迟或等待时间。
MinIO 分层不需要客户端逻辑更改。 您的客户端可以继续通过 MinIO 请求对象,MinIO 负责从 Azure 检索对象并透明地返回它。 MinIO 还支持使用 S3 恢复 API 将对象返回到“热”MinIO 部署。
MinIO 的分层功能扩展到混合云环境,其中 MinIO JBOD/JBOF 部署充当私有云上性能优化的“热”层,而 Azure 提供成本优化的“暖”和 “冷”层。 利用 MinIO TLS 和服务器端加密进一步保护两个云中的所有数据,包括静态数据和动态数据。
AKS 提供内置的 Azure 负载均衡器,为从 AKS 外部访问存储服务的应用程序跨多个 MinIO 租户提供自动负载均衡和路由服务。 将 MinIO 租户暴露给外部流量可以通过简单地向 MinIO 租户添加注释来完成。
对于云原生应用程序,最佳实践要求将密钥存储在对象系统之外的外部保险库中。 Azure Key Vault (AKV) 是一种安全且有弹性的服务,用于通过 API 跨 Azure 服务管理密钥。
对于那些具有更严格的安全要求或出于一致性目的的人,MinIO 集成了许多在 Azure 之外运行的外部密钥管理服务。
在 AKS 的公共实例中使用 MinIO 作为对象存储时,强烈建议在磁盘上加密。 MinIO 使用 AES-256-GCM 或 ChaCha20-Poly1305 加密来保护数据完整性和机密性,而不会影响性能。 MinIO Operator 允许为 Azure Key Vault 或受支持的第三方 KMS 配置租户,以实现对象的自动服务器端加密。
MinIO 支持在 KMS 中设置桶级默认加密密钥,支持 亚马逊云-S3语义(SSE-S3)。 客户端还可以使用 SSE-KMS 请求标头在 KMS 上指定单独的密钥。
MinIO 将使用此 KMS 来引导其内部密钥加密服务器(KES 服务)以实现高性能的每个对象加密。 每个租户在隔离的命名空间中运行自己的 KES 服务器。
在 AKS 上运行 MinIO 时,客户可以通过 Azure ActiveDirectory 或第三方 OpenID Connect/LDAP 兼容身份提供商(如 Okta/Auth0、Google、 Facebook、Keycloak 和 OpenLDAP。
外部 IDP 允许管理员集中管理用户/应用程序身份。 MinIO 建立在 IDP 之上,提供 AWS IAM 风格的用户、组、角色、策略和令牌服务 API。 拥有独立于基础设施的统一身份和访问管理 (IAM) 层的能力提供了显着的架构灵活性
从应用程序到 MinIO 的所有流量,包括节点间流量,都使用 TLS 加密。 TLS 证书用于保护网络通信并建立网络连接资源的身份,例如 MinIO 服务器。
AKS 使用 Jetstack 证书管理器自动生成和配置 Let's Encrypt 证书。 MinIO 与 Jetstack 证书管理器集成,因此您可以使用 MinIO Operator 为 MinIO 租户配置、提供、管理和更新证书。 租户在他们自己的 Kubernetes 命名空间中使用自己的证书彼此完全隔离,以提高安全性。
在 AKS 上部署 MinIO 时,MinIO 建议使用 Azure Monitor 作为 Prometheus 兼容系统进行监控和报警。 MinIO 发布了所有可以想象到的与对象存储相关的 Prometheus 指标,从桶容量到访问指标。 这些指标可以在 Azure Monitor、Grafana、MinIO 控制台或任何已用于 Azure Kubernetes 服务监控的 Prometheus 兼容工具中收集和可视化。
这些相同的工具也可用于建立基线和设置通知的警报阈值,然后可以将通知路由到通知平台,例如 PagerDuty、Freshservice 甚至 SNMP。