使用Karpenter通过时间切片管理GPU节点

本文介绍了如何使用Karpenter在Kubernetes中管理GPU节点,通过NVIDIA k8s插件实现GPU时间切片,降低云服务成本。作者详细阐述了架构设计、部署步骤和配置细节,旨在提供一种更经济、灵活的GPU资源调度方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

79fe253f2333f1a438d16b941feaa486.png

导语

在机器学习领域,我们经常使用 GPU 来加速计算工作负载。但现在的企业和开发者都更热衷于“上云”。有了云计算,使用云服务,用多少付多少,也就能降低运营成本了。

当你拥有数十个在不同时间段需要用到 GPU 的应用程序时,怎么以更低成本,怎么更灵活地在云服务器中调度资源,就会变成一件非常重要的事情。 

作者介绍

Jina AI 云架构研发工程师陶然

问题

那么,如何优化云服务中 GPU 的使用成本呢?在使用虚拟机时,哪怕你不需要全天候的服务,你也必须持续为所有的设备付费。相比于虚拟机,容器拥有更高的资源使用效率,作为容器界的扛把子,kubernetes 提供了弹性的节点缩放方式。

因为我使用的是 Amazon EKS,所以本文选择了 Karpenter 作为节点缩放器。Karpenter 是一个为 Kubernetes 构建的开源自动扩缩容项目,你可以通过此 文档[1] 了解更多关于 Karpenter 的信息。

想要管理多个 GPU 节点,还需要用到 NVIDIA 的 k8s 插件[2]。这是一个 Daemonset(守护进程),提供了以下自动化的功能:

  • • 公开集群每个节点上的 GPU 数量

  • • 实时追踪 GPU 的运行状况

  • • 在 Kubernetes 集群中运行启用 GPU 的容器

除此之外,它还支持 时间切片[3],使得用户可以在 Pod (Kubernetes 的最小调度对象)之间共享 GPU,从而节省成本。

Karpenter 本身也为节点提供了自动缩放功能,也就是说,只有在需要算力时,才会创建 GPU 实例,并且可以根据实际需求修改应用实例的调度规则。除了降低成本之外,也能更灵活地把 GPU 资源调度到 kubernetes 集群中的应用程序。

架构

97f6e31055d867aa9c51761fc60be1d0.jpeg

基础架构

0b227c80734060f68c4e6a927846c1a1.png

组件

这个架构非常简单易懂:应用程序选择了一个带有选择器(selector)的 karpenter 制备器(provisioner),接着,karpenter 制备器根据启动模板创建节点。

部署

接下来最重要的问题是如何去部署它,仍有一些细节需要考虑清楚:

  • • 如何将 NVIDIA k8s 插件部署到仅有 GPU 的节点

  • • 如何配置共享的 GPU 节点以使用时间切片,而不影响其他节点

  • • 如何在启动模板中自动更新节点 AMI,以便节点可以使用最新的镜像

  • • 如何设置 karpenter 制备器

下面我将逐一讲解。

首先,我们安装 karpenter,并使用 terraform 设置制备器。也可以参考官方文档,在 Amazon EKS 中手动安装 karpenter。如果你已经有 EKS 以及karpenter,可以跳过这一步。

不妨参考这个 GitHub repo[4]。

制备器

resource "kubectl_manifest" "karpenter_provisioner_gpu_shared" {  yaml_body = <<-YAML  apiVersion: karpenter.sh/v1alpha5  kind: Provisioner  metadata:    name: gpu-shared  spec:    ttlSecondsAfterEmpty: 300    labels:      jina.ai/node-type: gpu-shared      jina.ai/gpu-type: nvidia      nvidia.com/device-plugin.config: shared_gpu    requirements:     &nbs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值