如果要对 NVIDIA AI Enterprise 帐户使用 NVIDIA 委派许可服务器 (DLS),请参阅此增量主题。

在 TKGS 集群上部署 AI/ML 工作负载的集群运维人员附录

NVIDIA 提供了一个新的 NVIDIA 许可服务器 (NLS) 系统,即 DLS(委派许可服务器,Delegated Licensing Server)。有关详细信息,请参阅 NVIDIA 文档

如果要为 NVAIE 帐户使用 DLS,则需要执行的 NVAIE GPU Operator 准备和部署步骤与此处记录的步骤有所不同:在 TKGS 集群上部署 AI/ML 工作负载的集群运维人员工作流。具体来说,步骤 9 和 10 有所不同,如下所示。

运维人员步骤 9:准备安装 NVAIE GPU Operator

完成以下步骤,准备使用 DLS 安装 GPU Operator。
  1. 创建密钥。
    kubectl create secret docker-registry registry-secret \
      --docker-server=<users private NGC registry name> 
      --docker-username='$oauthtoken' \
      --docker-password=ZmJj…………Ri \
      --docker-email=<user-email-address> -n gpu-operator-resources
    
    注: 密码是之前在 NVIDIA GPU Cloud (NGC) 门户上创建的用户 API 密钥。
  2. 从 DLS 服务器获取客户端令牌。

    希望使用 vGPU 许可证的用户需要从该 DLS 许可证服务器获取一个“客户端令牌”。有关执行此操作的机制,请参见 NVIDIA 文档

  3. 使用客户端令牌在 TKGS 集群中创建一个 ConfigMap 对象。

    将客户端令牌文件放置在位于 <path>/client_configuration_token.tok 的文件中。

    然后,运行以下命令:

    kubectl delete configmap licensing-config -n gpu-operator-resources; > gridd.conf
    kubectl create configmap licensing-config \
      -n gpu-operator-resources --from-file=./gridd.conf --from-file=./client_configuration_token.tok
    
    注: DLS 使用的 grid.conf 文件为空。但是,两个“--from-file”参数都是必需的。

运维人员步骤 10:安装 NVAIE GPU Operator

完成以下步骤,使用 DLS 安装 NVAIE GPU Operator。有关其他指导,请参阅 GPU Operator 文档
  1. 在 TKGS 集群中安装 NVAIE GPU Operator
    • 按照 Helm 文档安装 Helm。
    • 添加 gpu-operator Helm 存储库。
      helm repo add nvidia https://nvidia.github.io/gpu-operator
    • 使用 Helm 安装 GPU Operator。
      export PRIVATE_REGISTRY="<user’s private registry name>"
      export OS_TAG=ubuntu20.04
      export VERSION=470.63.01
      export VGPU_DRIVER_VERSION=470.63.01-grid
      export NGC_API_KEY=Zm……………Ri  <- The user’s NGC AP Key
      export REGISTRY_SECRET_NAME=registry-secret
      
      helm show chart .
      kubectl delete crd clusterpolicies.nvidia.com
      helm install gpu-operator . -n gpu-operator-resources \
        --set psp.enabled=true \
        --set driver.licensingConfig.configMapName=licensing-config \
        --set operator.defaultRuntime=containerd \
        --set driver.imagePullSecrets={$REGISTRY_SECRET_NAME} \
        --set driver.version=$VERSION \
        --set driver.repository=$PRIVATE_REGISTRY \
        --set driver.licensingConfig.nlsEnabled=true
      
  2. 验证 DLS 是否正常工作。

    从 GPU Operator 部署的 NVIDIA 驱动程序 DaemonSet Pod 中,执行 nvidia-smi 命令以验证 DLS 是否正常工作。

    首先,运行以下命令进入 Pod 并启动 shell 会话:
    kubectl exec -it nvidia-driver-daemonset-cvxx6 nvidia-driver-ctr -n gpu-operator-resources – bash
    现在,您可以运行命令以验证 DLS 设置。
    nvidia-smi

    如果 DLS 设置正确,此命令应在输出中返回“Licensed”。