文章目录
针对 Kubernetes 1.8
在人工智能和深度学习领域,算法工程师对 GPU 的使用越来越多,因此用户也希望通过 Kubernetes 来为模型训练任务申请 GPU 资源。
Kubernetes 支持 GPU 有几个前提条件。
- 工作 Node 需要安装 Nvidia 的驱动程序
- 工作 Node 的 kubelet 需要在启动参数增加
--feature-gates="Accelerators=true"
- 工作 Node 安装 Nvidia-docker
alpha.kubernetes.io/nvdia-gpu
是 Nvidia GPU 的资源名称。
GPU 目前还有一些限制。
- 只能通过 limits 字段来配置,还不支持 request
- 容器和容器之间,以及 Pod 之间也不共享 GPU
- 容器只能请求整数个 GPU
- 集群需要运行相同型号的 GPU 硬件
容器需要访问 CUDA 库,一般来说 CUDA 库可以安装在工作 Node 上然后通过 hostPath
来挂载,又或者按照不同的 GPU 版本等在镜像里安装。