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
- Instale Herramientas de la CLI de Kubernetes para vSphere.
Consulte Instalar el Herramientas de la CLI de Kubernetes para vSphere.
- 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. - 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
- 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. - 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
- Cree el YAML para aprovisionar el clúster de TKG habilitado para vGPU.
- 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.
- 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.
- Utilice la información que recopiló de los resultados de los comandos anteriores para personalizar la especificación del clúster de TKGS.
- 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
- Compruebe el aprovisionamiento del clúster.
Supervise la implementación de nodos del clúster mediante kubectl.
kubectl get tanzukubernetesclusters -n NAMESPACE
- 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
- 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
- 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.
- Para instalar Helm, consulte la documentación de Helm.
- 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
- Cree un archivo YAML para los valores de configuración.
vi values.yaml
- 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]
- 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.
- 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.
- Para instalar Helm, consulte la documentación de Helm, si aún no está instalado.
- Cree el espacio de nombres de Kubernetes
gpu-operator
.kubectl create namespace gpu-operator
- Cree un archivo de configuración de licencia de vGPU vacío.
sudo touch gridd.conf
- 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.
- Cambie el nombre del token de licencia de cliente NLS que descargó en
client_configuration_token.tok
. - Cree el objeto
licensing-config
de ConfigMap en el espacio de nombresgpu-operator
.Incluya el archivo de configuración de licencia de vGPU (gridd.conf
) y el token de licencia de cliente NLS (*.tok
) en este ConfigMapkubectl create configmap licensing-config \ -n gpu-operator --from-file=gridd.conf --from-file=<path>/client_configuration_token.tok
- 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 registrongc-secret
y el nombre del registro privadonvcr.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
- 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>
- 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.