K8S中的服务使用GPU

Last Updated on 2024-10-14 by likun.gong

GPU 作为目前图形处理和 AI 任务必须的资源,这里简单记录一下在 K8S 中的程序,它们是如何使用 GPU 的。

这里以 AWS EKS 进行相关记录

  1. 确保使用的机器是有 GPU 硬件,例如 AWS 的 g4dn,g6 等机型就是带有 GPU 硬件的
  2. 在 EKS 中添加 GPU Node Group,注意使用的 AMI (操作系统镜像)需要带有 GPU 驱动和 cuda,选择 Amazon Linux 2023 Nvidia 的镜像
  3. 安装 k8s-device-plugin 组件,它会以 daemonset 的方式运行在节点上,如果我们的 GPU 节点配置了对应的污点,安装时需要修改对应的容忍机制
  4. 安装完 k8s-device-plugin 之后,我们通过 kubectl describe node,可以在 Capacity 中可以看到可用的 GPU 数量。当我们登录 GPU 节点,执行 nvidia-smi ,也可以看到 GPU 的相关信息
  5. 使用 GPU 感知的镜像来启动 Pod,例如 nvidia/cuda:11.0-base,它们内部已经包含了使用 GPU 需要的库、驱动程序、工具,使得容器内的应用程序能够有效地利用GPU资源进行计算
    在 deployment 中,我们需要在 requests 中标明需要的 GPU

至此,我们就可以在 k8s 的容器中调用节点的 GPU 资源了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注