Para permitir que los desarrolladores implementen cargas de trabajo de AI/ML en clústeres de servicio TKG, como operador de clúster, cree uno o varios clústeres de Kubernetes e instale los operadores de red y GPU de NVIDIA en cada uno.

Paso 1 del operador: verificar los requisitos previos

En estas instrucciones se supone que el administrador de vSphere configuró el entorno para GPU de NVIDIA. Consulte Flujo de trabajo del administrador de vSphere para implementar cargas de trabajo de AI/ML en clústeres TKGS.

En estas instrucciones se supone que va a instalar la edición NVIDIA AI Enterprise (NVAIE) del operador de GPU, la cual está preconfigurada y optimizada para usarla con vSphere IaaS control plane. El operador de GPU de NVAIE es diferente del operador de GPU que está disponible en el catálogo público de NGC. Consulte NVIDIA AI Enterprise para obtener más información.

En estas instrucciones se supone que está utilizando una versión del operador de GPU NVAIE y el controlador de vGPU que tiene un VIB correspondiente para ESXi. Consulte Versiones del operador de GPU de NVIDIA para obtener más información.

Al aprovisionar el clúster de TKG, debe utilizar la edición de Ubuntu de la TKR. Con TKG en Supervisor de vSphere 8, la edición de Ubuntu se especifica en el YAML del clúster mediante la anotación.

Paso 2 del operador: Aprovisionar un clúster de TKGS para vGPU de NVIDIA

VMware ofrece compatibilidad nativa con TKGS para GPU virtuales de NVIDIA en servidores certificados de GPU de NVIDIA con Operador de GPU de NVIDIA y Operador de redes de NVIDIA. Estos operadores se instalan en un clúster de carga de trabajo de TKGS. Si desea aprovisionar un clúster de TKGS para que aloje cargas de trabajo de vGPU, realice los siguientes pasos.
  1. Instale Herramientas de la CLI de Kubernetes para vSphere.

    Consulte Instalar el Herramientas de la CLI de Kubernetes para vSphere.

  2. Si utiliza el complemento de vSphere para kubectl, autentíquese en el Supervisor.
    kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME
    Nota: El FQDN solo se puede utilizar si se habilitó Supervisor con él.
  3. Con kubectl, cambie el contexto al espacio de nombres de vSphere que creó el administrador de vSphere para el clúster de vGPU de TKGS.
    kubectl config get-contexts
    kubectl config use-context TKG-GPU-CLUSTER-NAMESPACE
  4. Obtenga el nombre de la clase de máquina virtual personalizada con el perfil de vGPU que creó el administrador de vSphere.
    kubectl get virtualmachineclass
    Nota: La clase de máquina virtual debe estar enlazada al espacio de nombres de vSphere de destino.
  5. Obtenga el TKR NAME de la versión de Tanzu Kubernetes de Ubuntu que sincronizó el administrador de vSphere desde la biblioteca de contenido y agregó al espacio de nombres de vSphere.
    kubectl get tkr
  6. Cree el YAML para aprovisionar el clúster de TKG habilitado para vGPU.
    1. Decida qué API de aprovisionamiento de clústeres de TKGS va a utilizar, API v1alpha3 o API v1beta1: API de aprovisionamiento de clústeres de TKG.
    2. Según la API que elija, consulte el ejemplo de Ubuntu correspondiente a esa API.
      Nota: Debe utilizar una imagen de sistema operativo Ubuntu. No puede utilizar Photon OS.
    3. Utilice la información que recopiló de los resultados de los comandos anteriores para personalizar la especificación del clúster de TKGS.
  7. Ejecute el siguiente comando kubectl para aprovisionar el clúster.
    kubectl apply -f CLUSTER-NAME.yaml
    Por ejemplo:
    kubectl apply -f tkg-gpu-cluster-1.yaml
  8. Compruebe el aprovisionamiento del clúster.
    Supervise la implementación de nodos del clúster mediante kubectl.
    kubectl get tanzukubernetesclusters -n NAMESPACE
  9. Inicie sesión en el clúster de vGPU de TKGS con complemento de vSphere para kubectl.
    kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME \
    --tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
  10. Compruebe el clúster.
    Con los comandos siguientes, compruebe el clúster:
    kubectl cluster-info
    kubectl get nodes
    kubectl get namespaces
    kubectl api-resources

Paso 3 del operador: Instalar el operador de redes de NVIDIA

El operador de redes de NVIDIA aprovecha los recursos personalizados de Kubernetes y el marco del operador a fin de optimizar las redes para vGPU. Si desea obtener más información, consulte Operador de redes de NVIDIA.
  1. Compruebe que haya iniciado sesión en el clúster de carga de trabajo de vGPU de TKGS y que el contexto esté establecido en el espacio de nombres del clúster de carga de trabajo correspondiente a la vGPU de TKGS.

    Consulte las instrucciones Paso 2 del operador: Aprovisionar un clúster de TKGS para vGPU de NVIDIA si es necesario.

  2. Para instalar Helm, consulte la documentación de Helm.
  3. Recupere el gráfico de Helm del operador de redes de NVIDIA.
    helm fetch https://helm.ngc.nvidia.com/nvaie/charts/network-operator-v1.1.0.tgz --username='$oauthtoken' --password=<YOUR API KEY> --untar
  4. Cree un archivo YAML para los valores de configuración.
    vi values.yaml
  5. Rellene el archivo values.yaml con la siguiente información.
    deployCR: true
     ofedDriver:
      deploy: true
     rdmaSharedDevicePlugin:
      deploy: true
      resources:
       - name: rdma_shared_device_a
       vendors: [15b3]
       devices: [ens192]
  6. Instale el operador de redes de NVIDIA mediante el siguiente comando.
    helm install network-operator -f ./values.yaml -n network-operator --create-namespace --wait network-operator/

Paso 4 del operador: Instalar el operador de GPU de NVIDIA

NVIDIA proporciona un operador de GPU preconfigurado para los clientes de NVIDIA AI Enterprise. En estas instrucciones se supone que está utilizando esta versión preconfigurada del operador de GPU. Estas instrucciones se basan en las instrucciones que proporciona NVIDIA para instalar el operador de GPU, pero que se actualizaron para TKG en vSphere 8.

Complete los siguientes pasos para instalar el operador de GPU NVIDIA AI Enterprise en el clúster de TKG que aprovisionó.
  1. Compruebe que haya iniciado sesión en el clúster de carga de trabajo de vGPU de TKGS y que el contexto esté establecido en el espacio de nombres del clúster de carga de trabajo correspondiente a la vGPU de TKGS.

    Consulte las instrucciones Paso 2 del operador: Aprovisionar un clúster de TKGS para vGPU de NVIDIA si es necesario.

  2. Para instalar Helm, consulte la documentación de Helm, si aún no está instalado.
  3. Cree el espacio de nombres de Kubernetes gpu-operator.
    kubectl create namespace gpu-operator
  4. Cree un archivo de configuración de licencia de vGPU vacío.
    sudo touch gridd.conf
  5. Genere y descargue un token de licencia de cliente NLS.

    Consulte la Sección 4.6. Generar un token de configuración de cliente de la Guía de usuario del sistema de licencias de NVIDIA.

  6. Cambie el nombre del token de licencia de cliente NLS que descargó en client_configuration_token.tok.
  7. Cree el objeto licensing-config de ConfigMap en el espacio de nombres gpu-operator.
    Incluya el archivo de configuración de licencia de vGPU ( gridd.conf) y el token de licencia de cliente NLS ( *.tok) en este ConfigMap
    kubectl create configmap licensing-config \
        -n gpu-operator --from-file=gridd.conf --from-file=<path>/client_configuration_token.tok
  8. Cree un secreto de extracción de imágenes para el registro privado que contenga el controlador de gráficos de software vGPU NVIDIA en contenedor para Linux para usarlo con el operador de GPU NVIDIA.
    Cree el secreto de extracción de imágenes en el espacio de nombres gpu-operator con el nombre del secreto de registro ngc-secret y el nombre del registro privado nvcr.io/nvaie. Incluya la clave de API de NGC y la dirección de correo electrónico en los campos que se indican.
    kubectl create secret docker-registry ngc-secret \
    --docker-server=‘nvcr.io/nvaie’ \
    --docker-username=‘$oauthtoken’ \
    --docker-password=<YOUR_NGC_API_KEY> \
    --docker-email=<YOUR_EMAIL_ADDRESS> \
    -n gpu-operator
  9. Descargue el gráfico de Helm para la versión 2.2 del operador de GPU NVAIE.
    Reemplace YOUR API KEY.
    helm fetchhttps://helm.ngc.nvidia.com/nvaie/charts/gpu-operator-2-2-v1.11.1.tgz--username=‘$oauthtoken’ \
    --password=<YOUR API KEY>
  10. Instale la versión 2.2 del operador de GPU NVAIE en el clúster de TKG.
    helm install gpu-operator ./gpu-operator-2-2-v1.11.1.tgz -n gpu-operator

Paso 5 del operador: Implementar una carga de trabajo de AI/ML

El catálogo de NVIDIA GPU Cloud ofrece varias imágenes de contenedor que se encuentran disponibles para ejecutar cargas de trabajo de AI/ML en los clústeres de Tanzu Kubernetes habilitados para vGPU. Para obtener más información sobre las imágenes disponibles, consulte la documentación de NGC.