在代理环境中安装 GPU Operator#
简介#
本页介绍如何在 HTTP 代理后端的集群中成功部署 GPU Operator。默认情况下,GPU Operator 需要互联网访问,原因如下:
在 GPU Operator 安装期间需要拉取容器镜像。
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