
微软发布了 Azure Container Storage v2.0.0,为Azure Kubernetes Service(AKS)上的状态工作负载引入了显著的性能提升和架构简化。该版本专注于更深入的NVMe集成、简化了用户体验,并扩展了开源可用性,同时取消了基础存储成本之外的所有服务费用。
新版本通过优化的本地 NVMe 磁盘集成实现了显著的性能提升。根据微软使用 fio(行业标准的存储测试工具)进行的基准测试,带有 NVMe 条带化的 Azure Container Storage 现在提供的 IOPS 大约是之前的七倍,延迟降低了四倍。这些改进直接转化为实际应用程序的好处,在使用微软自己的 PostgreSQL for AKS 部署指南进行测试时,PostgreSQL 部署显示每秒事务数提高了 60%,延迟降低了 30%以上。

ACS v1.3.1 与 v2.0.0 的比较
除了传统的数据库工作负载之外,v2.0.0 版本通过与 Kubernetes AI 工具链运营商KAITO的集成,在 AI 和机器学习场景中表现出了特别的优势。大语言模型部署通常涉及将数十或数百千兆字节加载到 GPU 内存中,这在历史上一直受到网络存储瓶颈的困扰。通过在 GPU 节点上自动预配置条带化 NVMe 卷,KAITO 现在可以在本地缓存模型文件,与临时 OS 磁盘相比,模型加载速度提高了五倍以上。缓存的卷在 pod 重启后仍然存在,消除了重复的网络传输,并在流量高峰期间实现了更快的扩展。

KAITO 性能
根据早期版本的用户反馈,微软从根本上简化了架构。最显著的变化是取消了之前需要在创建持久卷声明之前手动配置的自定义 StoragePool 资源。用户现在只需与标准的Kubernetes StorageClasses和PVCs 进行交互,与熟悉的 Kubernetes 模式保持一致。架构本身已经从多个控制器和节点守护进程简化为一个轻量级操作符加上 CSI 驱动程序组件,从而减少了资源开销和系统复杂性。这种更小的占用空间使得在单节点或双节点集群上部署成为可能,这在以前需要至少三个节点的版本中是不可能的。
移除捆绑的Prometheus操作符解决了另一个重要的痛点。以前的版本会自动部署 Prometheus 以进行指标收集,这会在集群中与现有的监控基础设施产生冲突。相反,2.0.0 版本通过标准端点暴露度量指标,这些端点可以被 Azure Monitor、Azure Managed Prometheus 或任何现有的 Prometheus 部署抓取。其他改进包括消除了对 cert-manager 的 webhook 证书依赖,并将组件迁移到 kube-system 命名空间中与内置 CSI 驱动程序一起,减少了策略冲突。
商业模式的重大转变使得 Azure Container Storage v2.0.0 可以完全免费使用。虽然用户继续为底层存储资源付费,但微软已经取消了之前对超过 5 TiB 存储池收取的每千兆字节月费。这一定价变化适用于托管的 Azure 服务和开源版本,消除了大规模部署的成本障碍。
开源版本代表了另一个战略发展。微软已在 GitHub 上发布了核心组件,包括本地 NVMe 的 CSI 驱动程序和临时磁盘管理。这支持在 Azure VM 上运行的自托管 Kubernetes 集群上进行部署,将透明度扩展到更广泛的社区,并邀请外部贡献。开源基金会与微软对 Kubernetes 生态系统原则的承诺保持一致,同时可能通过社区参与加速功能开发。
Azure Container Storage 的方法与 AWS 和 Google Cloud 的竞品解决方案不同。AWS 依赖于 AmazonEBS CSI驱动程序的 EKS 集群,通过标准的 Kubernetes 存储接口管理 Amazon 弹性块存储卷,并由 Amazon EFS 容器存储接口驱动程序提供额外的支持,用于文件系统存储。Google Cloud 使用Compute Engine持久磁盘 CSI 驱动程序作为 GKE 集群的主要存储方法,辅以 Hyperdisk 卷,允许通过独立配置 IOPS 和吞吐量动态调整性能。AWS 和 Google Cloud 都遵循标准的 CSI 驱动程序模型,没有集成的平台管理方法或 Azure Container Storage 提供的内置 NVMe 优化。微软将超快速本地 NVMe 与简化的免费管理层结合起来的战略,在 Kubernetes 存储解决方案的竞争格局中代表了一种独特的架构选择。
原文链接:
https://www.infoq.com/news/2025/10/azure-container-kubernetes/
评论