GPU 设备插件(GPU Device-Plugin)是 Kubernetes 集群中用于管理每个节点的 GPU 的组件,它使得 Kubernetes 能够更方便、高效地利用 GPU 资源。本文介绍在独占 GPU 调度场景下,如何对节点的 GPU Device-Plugin 进行重启和 GPU 设备隔离等操作,以及如何查看和更新 Device-Plugin 版本。
GPU Device-Plugin 重启
在 ACK 的独占 GPU 调度场景下,节点上 GPU 的设备上报的 Device Plugin 默认以一个Static Pod 的形式部署,所以重启过程需要在目标节点上进行。具体操作如下:
mv /etc/kubernetes/manifests/nvidia device plugin.yml /etc/kubernetes/ # 等待几秒,旧 Pod 被清理的过程。 mv /etc/kubernetes/nvidia device plugin.yml /etc/kubernetes/manifests/
GPU 设备隔离
重要
GPU 设备隔离操作仅支持在 nvidia-device-plugin 的 v0.9.1 及以上版本中使用。如何查看 nvidia-device-plugin 的版本,请参见查看并更新 Device-Plugin 版本。
在 ACK 的独占 GPU 调度场景下,出于某些原因(例如 GPU 设备故障等),您需要隔离节点上的某个 GPU 设备,ACK 提供了一个机制可供您手动对节点上的某个设备进行隔离,以避免新的 Kubernetes 设备调度到这个设备上。具体的操作方式如下:
在目标节点/etc/nvidia-device-plugin/的目录下操作 unhealthyDevices.json 这个文件,如果此文件不存在,请新建此文件。unhealthyDevices.json 的文件格式请按照以下 JSON 格式编排。
{ "index": ["x", "x" ..], "uuid": ["xxx", "xxx" ..]}
您可以根据个人偏好,在 JSON 中填写目标隔离设备的 index 或 uuid(同一个设备只需填写任意一个),保存文件后即自动生效。
设 置 完 成 后 , 您 可 以 通 过 查 看 Kubernetes Node 上 报 的 Resource 中 的nvidia.com/gpu 资源的数量以查看隔离的效果。
《阿里云产品四月刊》—GPU Device-Plugin 相关操作(2)https://developer.aliyun.com/article/1554188