是否可以强制 k8s 工作人员仅使用特定的 GPU?

我有一个内部部署的 k8s GPU 集群,其中包含多个分别具有 8 个 GPU 的计算节点。因为我们在迁移到k8s的路上,而且还有一些剩余的项目要使用GPU,所以我必须保留一些k8s不允许使用的GPU。此外,一些项目需要使用连续的 GPU(我的意思是,使用物理上相邻的 PCIE 总线),因此有必要让这些 GPU 特定。

那么问题是,是否可以强制 k8s worker 只使用特定的 GPU?比如我想配置我的k8s worker分配0到4的GPU,4到7的GPU不能分配。

谢谢!

lvcha108 回答:是否可以强制 k8s 工作人员仅使用特定的 GPU?

如果您希望您的作业从不使用其中一个 gpu 节点,您可以使用 noschedule taint 污染此节点 例如:

kubectl taint nodes aks-gpuv100small.. no=k8s:NoSchedule  

如果您希望您的作业仅在特定的 gpu 节点上运行,您可以为此节点添加标签并将 nodeSelectors 添加到您的作业

 kubectl label nodes aks-gpuv100small.. k8s=gpu
 nodeSelector:
   k8s: gpu

如果您希望在 gpu 节点内仅向作业公开某些设备,您可以将以下环境变量添加到您的作业中

CUDA_VISIBLE_DEVICES=0,1,2,3
,

这取决于您的设备插件的具体情况,如果您指的是 Nvidia 插件,我不这么认为,至少在没有一些自定义工作的情况下不会。 https://github.com/NVIDIA/go-gpuallocator 库确实支持模块化分配策略,但我不认为这在设备插件中作为一个选项专门公开。它根本没有太多的配置方式。但是你可以分叉然后进城。

本文链接:https://www.f2er.com/300379.html

大家都在问