NVIDIA GPU设备插件在Kubernetes上的安装与配置完全指南

NVIDIA GPU设备插件在Kubernetes上的安装与配置完全指南

k8s-device-plugin NVIDIA device plugin for Kubernetes k8s-device-plugin 项目地址: https://gitcode.com/gh_mirrors/k8s/k8s-device-plugin

项目基础介绍及编程语言

NVIDIA GPU设备插件是由NVIDIA官方维护的一个开源项目,它允许在Kubernetes集群中自动管理GPU资源,使容器能够访问节点上的GPU。此项目主要使用Golang作为开发语言,兼容Kubernetes环境下的容器化应用,让深度学习、高性能计算等场景可以更便捷地利用GPU算力。

关键技术和框架

  • Kubernetes Device Plugin机制:该插件基于Kubernetes的设备插件架构实现,使得Kubernetes能够识别并管理NVIDIA GPU。
  • Docker和Containerd支持:要求环境中已安装NVIDIA Docker或NVIDIA Container Toolkit,以便容器可以访问GPU资源。
  • Helm图表部署:提供了Helm图表以简化在Kubernetes中的部署过程。
  • GPU Feature Discovery:支持自动发现GPU特性,并通过标签添加到节点上,便于自动化的GPU节点选择。

安装和配置步骤

准备工作

系统要求
  • NVIDIA驱动:至少版本384.81。
  • NVIDIA Docker / Container Toolkit:对于NVIDIA Docker,需>=2.0;NVIDIA Container Toolkit应>=1.7.0。
  • Kubernetes版本:>=1.10。
  • 配置低级别运行时:确保nvidia-container-runtime被设置为默认运行时。
安装NVIDIA Container Toolkit

对于基于Debian的系统(如Ubuntu),执行以下命令安装NVIDIA Container Toolkit并配置Docker和containerd(如果适用):

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker

对于CRI-O配置,请按NVIDIA文档指引,在/etc/crio/crio.conf.d/99-nvidia.conf配置文件中指定nvidia-container-runtime为默认运行时。

安装NVIDIA GPU设备插件

手动部署

对于快速测试,可以直接在所有GPU节点上部署静态DaemonSet:

kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.16.1/deployments/static/nvidia-device-plugin.yml
使用Helm进行生产部署
  1. 添加NVIDIA设备插件的Helm仓库(假设仓库地址已经更新):

    helm repo add nvdp https://nvidia.github.io/k8s-device-plugin
    helm repo update
    
  2. 部署Helm chart,创建必要的命名空间并部署插件:

    helm upgrade -i nvdp nvdp/nvidia-device-plugin \
        --namespace=nvidia-device-plugin \
        --create-namespace \
        --version=0.16.1
    

配置详情

设备插件可以通过命令行参数、环境变量或者配置文件来定制配置。例如,通过Helm图鉴可以调整如GPU资源限制、健康检查策略等配置项。

请求GPU资源

在Pod定义中加入对GPU的请求:

apiVersion: v1
kind: Pod
metadata:
  name: gpu-pod
spec:
  containers:
    - name: cuda-container
      image: nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda10.2
      resources:
        limits:
          nvidia.com/gpu: 1
      tolerations:
        - key: "nvidia.com/gpu"
          operator: "Exists"
          effect: "NoSchedule"

完成以上步骤后,您的Kubernetes集群将能够管理和分配GPU资源给相应的容器化作业,从而为深度学习和其他GPU密集型任务提供高效的支持。记住,针对特定需求,深入阅读官方文档以获取更多高级配置选项是关键。

k8s-device-plugin NVIDIA device plugin for Kubernetes k8s-device-plugin 项目地址: https://gitcode.com/gh_mirrors/k8s/k8s-device-plugin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郎蝶希Philomena

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值