nvidia gpu-operator

什么是 gpu-operator

用于给集群环境调度 gpu ,由 n 个子组件组成。分别如下

  1. gpu-operator
    描述: GPU Operator 是一个 Kubernetes Operator,用于自动化 NVIDIA GPU 的配置和管理。它可以部署、管理和监控 GPU 驱动、容器工具包、设备插件等组件。
    作用: 负责协调和管理整个 GPU Operator 的运行,确保 GPU 相关的组件都正确部署和配置。
  2. gpu-operator-1723203113-node-feature-discovery-gc
    描述: 这个组件通常与 Node Feature Discovery (NFD) 相关,可能用于清理或管理节点特征信息。
    作用: 负责管理与 GPU 相关的节点特征信息,可能包括定期清理过期或不再使用的特征。
  3. gpu-operator-1723203113-node-feature-discovery-master
    描述: 这个组件是 Node Feature Discovery (NFD) 的主控制器。
    作用: 负责收集、处理和传播节点上的硬件特征信息,如 GPU 信息,以便在调度和资源分配时使用。
  4. gpu-operator-1723203113-node-feature-discovery-worker
    描述: 这是 Node Feature Discovery 的工作节点组件。
    作用: 直接在节点上运行,检测硬件特征并将其报告给主控制器。
  5. nvidia-mig-manager
    描述: 这个组件负责管理 NVIDIA 的多实例 GPU (MIG) 功能。
    作用: 允许单个 GPU 分割成多个虚拟 GPU 实例,以便更好地利用 GPU 资源。
  6. gpu-feature-discovery
    描述: GPU Feature Discovery 是一个组件,用于检测 GPU 特性并将其报告给 Kubernetes。
    作用: 发现节点上的 GPU 特性,以便在调度工作负载时使用这些信息。
  7. nvidia-dcgm-exporter
    描述: NVIDIA DCGM (Data Center GPU Manager) Exporter 用于将 GPU 性能和健康指标导出到 Prometheus 监控系统。
    作用: 提供 GPU 的性能监控,包括温度、内存使用、功耗等。
  8. nvidia-device-plugin-mps-control-daemon
    描述: 这是一个管理 Multi-Process Service (MPS) 的组件。
    作用: 管理 MPS,让多个进程可以共享 GPU 资源,从而提高 GPU 的利用率。
  9. nvidia-device-plugin-daemonset
    描述: NVIDIA Device Plugin 是一个 DaemonSet,负责在 Kubernetes 节点上暴露 GPU 设备。
    作用: 使得 Kubernetes 可以识别和使用节点上的 GPU 资源。
  10. nvidia-container-toolkit-daemonset
    描述: 这个 DaemonSet 部署 NVIDIA Container Toolkit。
    作用: 提供容器化环境中访问 GPU 的工具和库,如 nvidia-container-runtime。
  11. nvidia-driver-daemonset
    描述: 这是一个 DaemonSet,负责在节点上安装和管理 NVIDIA GPU 驱动程序。
    作用: 确保每个节点都安装并运行正确版本的 GPU 驱动,以便容器能够使用 GPU 资源。
    这些组件一起工作,以确保你的 Kubernetes 集群能够正确识别、管理和利用 NVIDIA GPU 资源。

首先是 gpu-operator 的 deployment 启动,调度其他 deployment 和 daemonSet ,首先 gc(上述2) 和 master、node 的 nfd (上述3、4)启动,而后 driver(上述11) 启动为集群每台机器安装 驱动(如果检测到本机已经预先安装,会自动停止),再由 toolkit 安装 容器运行时的工具包,再就是 plugein 来将集群机器的 gpu 暴露给集群调度,gdf 和 dcgm 分别手机 gpu 信息 和 状态,而 dcgm 就是个大坑,害群之马,会导致 NVLINK 不可用,也就是把本机的 nvidia-smi 一些显卡变成 err 状态。只要不安装即可,在安装 gpu-operator 的 helm install 命令指定就行。mig 是将一个 GPU 让多个节点调度到。如果没有 mig ,每个 pod 分配 GPU 的单位是 整数。

安装步骤

sudo helm install --wait --generate-name \
    -n gpu-operator --create-namespace \
    nvidia/gpu-operator\
    --version v24.3.0 \
    --set dcgmExporter.enabled=false \
    --set driver.enabled=false\
    --set migManager.enabled=true\
    --set driver.vgpu.enabled=true

具体参数根据自己需要配置。

卸载步骤

kubectl delete crd nvidiadrivers.nvidia.com
helm delete -n gpu-operator $(helm list -n gpu-operator | grep gpu-operator | awk '{print $1}')
kubectl get pods -n gpu-operator
kubectl get crd clusterpolicies.nvidia.com
kubectl get nvidiadrivers.nvidia.com
kubectl get clusterpolicies.nvidia.com

kubectl delete nvidiadrivers.nvidia.com --all
kubectl delete clusterpolicies.nvidia.com --all
kubectl delete crd clusterpolicies.nvidia.com
kubectl delete namespace  gpu-operator 
sudo rm -rf /usr/local/nvidia
sudo rmmod nvidia_uvm
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia

如果卸载驱动模块过程有阻碍,就把对应的进程 kill 掉。
如果在删除 namespace 时卡死,那就是有 pod 无法删除,删除后又会自动创建,强制删除即可:

kubectl delete pod nvidia-operator-validator-47g2j   --grace-period=0 --force -n gpu-operator
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值