nvidia-device-plugin介绍
1. 简介
NVIDIA device plugin 通过k8s daemonset的方式部署到每个k8s的node节点上,实现了Kubernetes device plugin的接口。
提供以下功能:
暴露每个节点的GPU数量给集群
跟踪GPU的健康情况
使在k8s的节点可以运行GPU容器
2. 要求
NVIDIA drivers ~= 384.81
nvidia-docker version > 2.0 (see how to install and it's prerequisites)
docker configured with nvidia as the default runtime.
Kubernetes version >= 1.10
3. 使用
3.1. 安装NVIDIA drivers和nvidia-docker
提供GPU节点的机器,准备工作如下
安装NVIDIA drivers ~= 384.81
安装nvidia-docker version > 2.0
3.2. 配置docker runtime
配置nvidia runtime作为GPU节点的默认runtime。
修改文件/etc/docker/daemon.json,增加以下runtime内容。
3.3. 部署nvidia-device-plugin
nvidia-device-plugin的daemonset yaml文件如下:
3.4. 运行GPU任务
创建一个GPU的pod,pod的资源类型指定为nvidia.com/gpu。
4. 构建和运行nvidia-device-plugin
4.1. docker方式
4.1.1. 编译
直接拉取dockerhub的镜像
拉取代码构建镜像
修改nvidia-device-plugin后构建镜像
4.1.2. 运行
docker本地运行
daemonset运行
4.2. 非docker方式
4.2.1. 编译
4.2.2. 本地运行
参考:
https://github.com/NVIDIA/k8s-device-plugin
最后更新于
这有帮助吗?