Pour permettre aux développeurs de déployer des charges de travail AI/ML sur des clusters de service TKG, en tant qu'opérateur de cluster, vous créez un ou plusieurs clusters Kubernetes et installez les opérateurs de réseau NVIDIA et GPU sur chacun d'entre eux.
Étape 1 pour l'opérateur : Vérifier les conditions préalables
Ces instructions partent du principe que l'administrateur vSphere a configuré l'environnement pour NVIDIA GPU. Reportez-vous à la section Workflow de l'administrateur vSphere pour le déploiement de charges de travail AI/ML sur des clusters TKGS.
Ces instructions partent du principe que vous installez l'édition NVIDIA AI Enterprise (NVAIE) de l'opérateur GPU, qui est préconfigurée et optimisée pour une utilisation avec vSphere IaaS control plane. L'opérateur GPU NVAIE est différent de l'opérateur GPU disponible dans le catalogue NGC public. Pour plus d'informations, reportez-vous à la page NVIDIA AI Enterprise.
Ces instructions supposent que vous utilisez une version de l'opérateur NVAIE GPU et du pilote vGPU qui dispose d'un VIB correspondant pour ESXi. Pour plus d'informations, reportez-vous à la page NVIDIA GPU Operator Versioning.
Lors du provisionnement du cluster TKG, vous devez utiliser l'édition Ubuntu de la TKR. Avec le Superviseur TKG sur vSphere 8, l'édition Ubuntu est spécifiée dans le cluster YAML à l'aide de l'annotation.
Étape 2 de l'opérateur : Provisionner un cluster TKGS pour NVIDIA vGPU
- Installez Outils de l'interface de ligne de commande Kubernetes pour vSphere .
Reportez-vous à la section Installez l'Outils de l'interface de ligne de commande Kubernetes pour vSphere ..
- À l'aide du Plug-in vSphere pour kubectl, authentifiez-vous sur le Superviseur.
kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME
Note : Le nom de domaine complet ne peut être utilisé que si le Superviseur est activé avec celui-ci. - À l'aide de kubectl, faites basculer le contexte sur l'Espace de noms vSphere que l'administrateur vSphere a créé pour le cluster TKGS vGPU.
kubectl config get-contexts
kubectl config use-context TKG-GPU-CLUSTER-NAMESPACE
- Obtenez le nom de la classe de machine virtuelle personnalisée avec le profil vGPU créé par l'administrateur vSphere.
kubectl get virtualmachineclass
Note : La classe de machine virtuelle doit être liée au Espace de noms vSphere cible. - Obtenez le nom de TKR de l'instance d'Ubuntu Version de Tanzu Kubernetes que l'administrateur vSphere a synchronisée à partir de la bibliothèque de contenu et ajoutée à l'Espace de noms vSphere.
kubectl get tkr
- Création du YAML pour le provisionnement du cluster TKG compatible avec vGPU.
- Décidez quelle API de provisionnement du cluster TKGS vous allez utiliser : API v1alpha3 ou API v1beta1 : API de provisionnement de cluster TKG.
- En fonction de l'API que vous choisissez, reportez-vous à l'exemple Ubuntu pour cette API.
Note : Vous devez utiliser une image du système d'exploitation Ubuntu. Vous ne pouvez pas utiliser Photon OS.
- Utilisez les informations que vous avez collectées dans la sortie des commandes précédentes pour personnaliser la spécification du cluster TKGS.
- Provisionnez le cluster en exécutant la commande kubectl suivante.
kubectl apply -f CLUSTER-NAME.yaml
Par exemple :kubectl apply -f tkg-gpu-cluster-1.yaml
- Vérifiez le provisionnement du cluster.
Surveillez le déploiement des nœuds de cluster à l'aide de kubectl.
kubectl get tanzukubernetesclusters -n NAMESPACE
- Connectez-vous au cluster TKGS vGPU en utilisant le Plug-in vSphere pour kubectl.
kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME \ --tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
- Vérifiez le cluster.
Utilisez la commande suivante pour vérifier le cluster :
kubectl cluster-info
kubectl get nodes
kubectl get namespaces
kubectl api-resources
Étape 3 pour l'opérateur : Installation de l'opérateur réseau NVIDIA
- Vérifiez que vous êtes connecté au cluster de charge de travail TKGS vGPU et que le contexte est défini sur l'espace de noms du cluster de charge de travail TKGS vGPU.
Reportez-vous aux instructions Étape 2 de l'opérateur : Provisionner un cluster TKGS pour NVIDIA vGPU si nécessaire.
- Installez Helm en vous référant à la documentation Helm.
- Extrayez le graphique Helm de l'opérateur réseau NVIDIA.
helm fetch https://helm.ngc.nvidia.com/nvaie/charts/network-operator-v1.1.0.tgz --username='$oauthtoken' --password=<YOUR API KEY> --untar
- Créez un fichier YAML pour les valeurs de configuration.
vi values.yaml
- Remplissez le fichier
values.yaml
avec les informations suivantes.deployCR: true ofedDriver: deploy: true rdmaSharedDevicePlugin: deploy: true resources: - name: rdma_shared_device_a vendors: [15b3] devices: [ens192]
- Installez l'opérateur réseau NVIDIA à l'aide de la commande suivante.
helm install network-operator -f ./values.yaml -n network-operator --create-namespace --wait network-operator/
Étape 4 pour l'opérateur : Installation de l'opérateur GPU NVIDIA
NVIDIA fournit un opérateur GPU préconfiguré pour les clients NVIDIA AI Enterprise. Ces instructions supposent que vous utilisez cette version préconfigurée de l'opérateur GPU. Ces instructions sont basées sur les instructions fournies par NVIDIA pour l'Installation de l'opérateur GPU, mais elles ont été mises à jour pour TKG sur vSphere 8.
- Vérifiez que vous êtes connecté au cluster de charge de travail TKGS vGPU et que le contexte est défini sur l'espace de noms du cluster de charge de travail TKGS vGPU.
Reportez-vous aux instructions Étape 2 de l'opérateur : Provisionner un cluster TKGS pour NVIDIA vGPU si nécessaire.
- Installez Helm en vous référant à la documentation Helm, s'il n'est pas déjà installé.
- Créez l'espace de noms Kubernetes
gpu-operator
.kubectl create namespace gpu-operator
- Créez un fichier de configuration de licence vGPU vide.
sudo touch gridd.conf
- Générez et téléchargez un jeton de licence client NLS.
Reportez-vous à la Section 4.6. Generating a Client Configuration Token du guide NVIDIA License System User Guide.
- Renommez le jeton de licence du client NLS que vous avez téléchargé en
client_configuration_token.tok
. - Créez l'objet ConfigMap
licensing-config
dans l'espace de nomsgpu-operator
.Incluez le fichier de configuration de la licence vGPU (gridd.conf
) et le jeton de licence du client NLS (*.tok
) dans ce ConfigMap.kubectl create configmap licensing-config \ -n gpu-operator --from-file=gridd.conf --from-file=<path>/client_configuration_token.tok
- Créez un secret d'extraction d'image pour le registre privé qui contient le pilote graphique logiciel NVIDIA vGPU en conteneur pour Linux à utiliser avec l'opérateur GPU NVIDIA.
Créez le secret d'extraction de l'image dans l'espace de noms
gpu-operator
avec le nom de secret de registrengc-secret
et le nom de registre privénvcr.io/nvaie
. Incluez votre clé API NGC et votre adresse e-mail dans les champs indiqués.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
- Téléchargez le graphique Helm pour l'opérateur GPU NVAIE version 2.2.
Remplacez votre clé d'API.
helm fetchhttps://helm.ngc.nvidia.com/nvaie/charts/gpu-operator-2-2-v1.11.1.tgz--username=‘$oauthtoken’ \ --password=<YOUR API KEY>
- Installez l'opérateur NVAIE GPU version 2.2 dans le cluster TKG.
helm install gpu-operator ./gpu-operator-2-2-v1.11.1.tgz -n gpu-operator
Étape 5 pour l'opérateur : Déploiement d'une charge de travail AI/ML
Le catalogue NVIDIA GPU Cloud propose plusieurs images de conteneur prêtes à l'emploi que vous pouvez utiliser pour exécuter des charges de travail AI/ML sur vos clusters Tanzu Kubernetes compatibles avec vGPU. Pour plus d'informations sur les images disponibles, reportez-vous à la documentation NGC.