在代理环境中安装 GPU Operator#

简介#

本页介绍如何在 HTTP 代理后端的集群中成功部署 GPU Operator。默认情况下,GPU Operator 需要互联网访问,原因如下:

  1. 在 GPU Operator 安装期间需要拉取容器镜像。

  2. driver 容器需要在驱动程序安装之前下载几个操作系统软件包。

    提示

    使用 预编译的驱动程序容器 可以消除 driver 容器下载操作系统软件包的需求。

为了满足这些要求,所有 Kubernetes 节点以及 driver 容器都需要适当的配置,以便将流量定向到代理。

本文档演示了如何配置 GPU Operator,以便 driver 容器可以成功地通过 HTTP 代理下载软件包。由于配置 Kubernetes/容器运行时组件以使用代理并非 GPU Operator 特有,因此我们在此不包括这些说明。

Openshift 的说明有所不同,因此如果您没有运行 Openshift,请跳过标题为 Openshift 的 HTTP 代理配置 的部分。

先决条件#

  • Kubernetes 集群已配置 HTTP 代理设置(容器运行时应启用 HTTP 代理)

Openshift 的 HTTP 代理配置#

对于 Openshift,建议使用集群范围的 Proxy 对象为集群提供代理信息。请按照 Red Hat Openshift 公共文档中的 配置集群范围的代理 中描述的步骤进行操作。GPU Operator 将根据集群范围的 Proxy 对象中存在的信息,自动将代理相关的 ENV 注入到 driver 容器中。

HTTP 代理配置#

首先,获取用于 GPU Operator 配置的 values.yaml 文件

$ curl -sO https://raw.githubusercontent.com/NVIDIA/gpu-operator/v24.9.2/deployments/gpu-operator/values.yaml

values.yaml 中使用适当的 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 环境变量(包括大写和小写)指定 driver.env

driver:
   env:
   - name: HTTPS_PROXY
     value: http://<example.proxy.com:port>
   - name: HTTP_PROXY
     value: http://<example.proxy.com:port>
   - name: NO_PROXY
     value: <example.com>
   - name: https_proxy
     value: http://<example.proxy.com:port>
   - name: http_proxy
     value: http://<example.proxy.com:port>
   - name: no_proxy
     value: <example.com>

注意

  • GPU Operator 会自动将代理相关的 ENV 注入到 driver 容器中,以指示下载必要软件包时使用的代理信息。

  • 如果设置了 HTTPS 代理服务器,则将 HTTPS_PROXY 和 https_proxy 的值更改为使用 https

部署 GPU Operator#

使用更新后的 values.yaml 下载并部署 GPU Operator Helm Chart。

从 NGC 仓库获取 Chart

$ helm fetch https://helm.ngc.nvidia.com/nvidia/charts/gpu-operator-v24.9.2.tgz

使用更新后的 values.yaml 安装 GPU Operator

$ helm install --wait gpu-operator \
     -n gpu-operator --create-namespace \
     gpu-operator-v24.9.2.tgz \
     -f values.yaml

检查 Pod 的状态,确保所有容器都在运行

$ kubectl get pods -n gpu-operator