卸载 GPU Operator#

执行以下步骤卸载 Operator。

  1. 可选:列出并删除 NVIDIA 驱动程序自定义资源。

    $ kubectl get nvidiadrivers
    

    示例输出

    NAME          STATUS   AGE
    demo-gold     ready    2023-10-16T17:57:12Z
    demo-silver   ready    2023-10-16T17:57:12Z
    
    $ kubectl delete nvidiadriver demo-gold
    $ kubectl delete nvidiadriver demo-silver
    
    $ kubectl delete crd nvidiadrivers.nvidia.com
    
  2. 删除 Operator

    $ helm delete -n gpu-operator $(helm list -n gpu-operator | grep gpu-operator | awk '{print $1}')
    
  3. 可选:列出 Operator 命名空间中的 Pod,以确认 Pod 已删除或正在删除过程中

    $ kubectl get pods -n gpu-operator
    

    示例输出

    No resources found.
    

默认情况下,当您删除图表时,Helm 不支持删除现有的 CRD。因此,默认情况下,clusterpolicy CRD 和 nvidiadrivers CRD 仍将保留。

$ kubectl get crd clusterpolicies.nvidia.com

为了克服这个问题,Operator 使用post-delete hook来执行 CRD 清理。operator.cleanupCRD 图表参数被添加以启用此 hook。此参数默认禁用。您可以通过在安装或升级期间指定 --set operator.cleanupCRD=true 来启用该 hook,以便在图表删除时执行自动 CRD 清理。

或者,您可以删除自定义资源定义

$ kubectl delete crd clusterpolicies.nvidia.com

注意

  • 卸载 Operator 后,NVIDIA 驱动程序模块可能仍然加载。重新启动节点或使用以下命令卸载它们

    $ sudo rmmod nvidia_modeset nvidia_uvm nvidia
    
  • 与 GPU Operator 一起使用的 Helm hooks 使用 Operator 镜像本身。如果 Operator 镜像无法成功拉取(由于网络错误或 NVAIE 的情况下 NGC 注册表密钥无效),hooks 将会失败。在这种情况下,删除图表并指定 --no-hooks 参数以避免 hook 失败时挂起。