
亚马逊网络服务宣布在容器编排方面取得了重大突破,亚马逊弹性 Kubernetes 服务(Amazon Elastic Kubernetes Service,EKS)现在支持高达 10 万个节点的集群,这比以前的限制增加了 10 倍。这一增强为人工智能和机器学习工作负载提供了前所未有的规模,在单个 Kubernetes 集群中可能支持多达 160 万个AWS Trainium芯片或 80 万个NVIDIA GPU。
拥有数万亿个参数的最先进 AI 模型,在上下文理解、推理和解决复杂任务方面展现出了显著的优越能力。然而,开发和管理这些日益强大的模型需要访问单个集群中的大量计算加速器。将这些作业分割到不同的集群可能会由于容量碎片化或重新映射延迟而降低利用率,因此单一大规模集群对于最佳性能来说至关重要。
在单个集群中运行它们可以提供某些关键优势。首先,它通过共享容量池提高利用率来降低计算成本,这些容量池用于运行从大型预训练到微调实验和批量推理的异构作业。此外,与管理分割集群部署相比,调度、发现和修复等集中操作大大简化了。
AWS 通过几个架构突破实现了这个 100K 节点能力,从根本上重新设计了 Kubernetes 集群的核心组件,同时保持了 Kubernetes 的完全一致性。
最重要的创新在于对 Kubernetes 核心数据存储 etcd 的彻底改造。通过根本性的改变,亚马逊 EKS 已经将 etcd 的共识后端从基于raft的实现转移到了 journal 日志,这是 AWS 已经构建了十多年的内部组件。这个日志系统提供了超快速、有序的数据复制,具有多可用区的持久性。
AWS 还使用tmpfs将 etcd 的后端数据库完全转移到内存存储中,以更高的读/写吞吐量、可预测的延迟和更快的维护操作的形式提供数量级的性能优势。支持的最大数据库大小增加了一倍,达到 20 GB,同时在故障期间保持较低的平均恢复时间。
工程团队对 API 服务器和关键 Webhook 进行了广泛的调优,仔细地优化了请求超时、重试策略、工作并行性和节流规则等配置。Kubernetes v1.31 引入了从缓存中读取的强一致性,允许将大部分读取流量从 etcd 卸载到 API 服务器,将服务器端 CPU 使用量降低了 30%,并将列表请求速度提高了三倍。
在集群范围内运行的控制器得到了显著的改进,可以最大限度地减少锁争用并支持事件的批处理。即使在 10K 节点规模下,Kubernetes 调度器也能根据工作负载精心定制调度器插件并优化节点过滤/评分参数,持续提供高达 500 个 pods/秒的吞吐量。
对于需要高带宽的加速工作负载,AWS 配置了带有前缀模式的 Amazon VPC CNI 进行地址管理,允许在单个 VPC 中为 10K 节点进行流线型网络操作,同时将节点启动速率提高至三倍。对于需要高带宽的加速工作负载,他们启用了额外网络卡上的 pod ENIs,增强了 pod 的网络带宽容量(超过 100 GB/s)和数据包速率性能。
容器镜像管理通过可寻址 OCI(SOCI)快速拉取技术得到了关注,该技术使大型 AI/ML 容器镜像(通常超过 5 GB)能够同时下载和解包。结合并行解包能力相结合,测试表明与默认设置相比,整体镜像下载和解包减少了高达 2 倍。
AWS 进行了广泛的测试,模拟真实世界的超大规模 AI/ML 场景。测试涵盖了在所有 100K 节点上运行的大规模预训练作业、10 个并行微调作业,每个作业使用 10K 节点,以及结合微调和推理任务的混合模式工作负载。

在 100K 节点上运行的 AI/ML 测试场景
节点生命周期测试显示,Karpenter可以在 50 分钟内启动 100K 个 Amazon EC2 实例,每分钟有 2000 个节点准备好加入集群。在尊重节点中断预算的同时,更新所有节点到新 AMI 集群的漂移操作大约需要 4 小时。
测试期间的性能指标令人印象深刻:集群包含超过 1000 万个 Kubernetes 对象,包括 100K 个节点和 900K 个 pods,跨分区的聚合 etcd 数据库大小达到 32 GB。在所有测试场景中,API 延迟始终保持在 Kubernetes SLO 目标之内。
这一进步特别有利于从事尖端 AI 研究和大规模机器学习操作的组织。除了直接消费 Amazon EKS 的客户外,这些改进还扩展到了其他 AI/ML 服务,如利用 EKS 作为其计算层的 Amazon SageMaker HyperPod,提高 AWS 的整体超大规模计算能力。
这项公告使 AWS 在 Kubernetes 集群规模方面显著领先于其主要的云竞争对手。谷歌 Kubernetes 引擎(GKE)目前支持每个标准集群最多 15,000 个节点,需要更高限制时则需要特殊批准和特定配置,例如具有私有服务连接的区域集群。微软 Azure Kubernetes 服务(AKS)通过虚拟机规模集支持每个集群最多 5,000 个节点,尽管接近上限的集群可以联系支持人员以提高限制。
AWS 的 10 万个节点的能力比 GKE 的标准限制提高了 6.7 倍,比 AKS 的最大限制提高了 20 倍,为需要大规模 AI/ML 基础设施的组织建立了实质性的竞争优势。考虑到竞争对手的更高限制通常伴随着额外的限制或需要特殊批准流程,,而 AWS 的超大规模集群被设计为标准产品,完全符合 Kubernetes 标准,这一差距变得更加明显。
原文链接:
评论