Migration des ressources GPU de NVIDIA vers les nœuds de travail RHCOS
Cloud privé virtuel
Consultez les étapes suivantes pour savoir comment migrer vos ressources d'opérateur GPU NVIDIA des nœuds de travail GPU RHEL 8 vers les nœuds de travail RHCOS.
L'opérateur GPU NVIDIA se compose des ressources suivantes :
gpu-feature-discoverynvidia-container-toolkit-daemonsetnvidia-cuda-validatornvidia-dcgmnvidia-dcgm-exporternvidia-device-plugin-daemonsetnvidia-driver-daemonsetnvidia-node-status-exporternvidia-operator-validator
La principale composante d'intérêt est nvidia-driver-daemonset. Ce composant est responsable de l'installation du pilote GPU dans le nœud de travail GPU. Ces pilotes sont installés différemment selon qu'il s'agit de nœuds de travail
RHEL 8 ou RHCOS.
Déclaration officielle de NVIDIA GPU operator: Tous les nœuds ou groupes de nœuds qui exécutent des charges de travail GPU dans le cluster Kubernetes doivent utiliser la même version du système d'exploitation pour utiliser le conteneur GPU Driver de NVIDIA. Par ailleurs, si vous préinstallez le pilote GPU NVIDIA sur les nœuds, vous pouvez faire fonctionner différents systèmes d'exploitation. Pour plus d'informations, voir Installation de l'opérateur GPU NVIDIA.
L'opérateur GPU NVIDIA n'est pas en mesure de gérer simultanément les installations de pilotes sur différents systèmes d'exploitation de nœuds de travail. Cette limitation signifie que si l'installation du pilote du GPU est uniquement gérée par l'opérateur du GPU NVIDIA, une migration complète de l'installation du pilote est nécessaire en cas de changement de système d'exploitation du nœud de travail.
Effectuez les étapes suivantes pour migrer les installations de pilotes d'opérateur GPU NVIDIA de RHEL 8 vers les nœuds de travail RHCOS. Cet exemple décrit plus précisément les étapes de migration pour la configuration de cluster suivante :
Détails de l'environnement initial
Examinez les détails et les notes pour la migration d'une version Red Hat OpenShift on IBM Cloud 4.17 sur VPC avec des nœuds de travail RHEL 8 vers la version 4.18 avec des nœuds de travail RHCOS.
La version 4.18 ne prend en charge que RHCOS et RHEL 9.
Avant de commencer, assurez-vous que le cluster répond aux exigences suivantes.
- Un cluster VPC 4.17 avec des nœuds de travail RHEL 8 utilisant des saveurs GPU NVIDIA.
- L'opérateur GPU NVIDIA, ClusterPolicy, et les opérandes sont tous installés et
Ready.
- Obtenez les détails du site
nvidia-gpu-operator.
Exemple de sortieoc get po -n nvidia-gpu-operator -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES gpu-feature-discovery-ng7zn 1/1 Running 0 6m6s 172.23.145.152 10.240.0.15 <none> <none> gpu-operator-678b489684-7zgkq 1/1 Running 0 45h 172.23.145.135 10.240.0.15 <none> <none> nvidia-container-toolkit-daemonset-j4dzs 1/1 Running 0 6m6s 172.23.145.143 10.240.0.15 <none> <none> nvidia-cuda-validator-l44mz 0/1 Completed 0 2m28s 172.23.145.236 10.240.0.15 <none> <none> nvidia-dcgm-7sfvn 1/1 Running 0 6m7s 172.23.145.180 10.240.0.15 <none> <none> nvidia-dcgm-exporter-s5k48 1/1 Running 0 6m6s 172.23.145.172 10.240.0.15 <none> <none> nvidia-device-plugin-daemonset-xhds2 1/1 Running 0 6m6s 172.23.145.191 10.240.0.15 <none> <none> nvidia-driver-daemonset-mjqls 1/1 Running 0 7m1s 172.23.145.145 10.240.0.15 <none> <none> nvidia-node-status-exporter-5kvs4 1/1 Running 0 7m16s 172.23.145.235 10.240.0.15 <none> <none> nvidia-operator-validator-pz7wm 1/1 Running 0 6m7s 172.23.145.153 10.240.0.15 <none> <none> - Obtenez les coordonnées du site
gpu-cluster-policyet assurez-vous qu'il s'agit bien du siteready.
Exemple de sortieoc get clusterpolicies.nvidia.com gpu-cluster-policyNAME STATUS AGE gpu-cluster-policy ready 2025-03-07T03:07:00Z
Étape 1 : Mise à jour du maître de la grappe
Exécutez la commande suivante pour mettre à jour le serveur maître.
ibmcloud oc cluster master update --cluster <clusterNameOrID> --version 4.18_openshift
À ce stade, ne mettez pas à niveau les nœuds de travailleurs vers 4.18. Pour l'instant, gardez vos travailleurs RHEL 8 sur 4.17.
Étape 2 : Créer un pool de travailleurs pour le cluster RHCOS
-
Exécutez la commande suivante pour créer un pool de travailleurs RHCOS.
ibmcloud oc worker-pool create vpc-gen2 \ --cluster <clusterNameOrID> \ --name <workerPoolName> \ --flavor <workerNodeFlavor> \ --size-per-zone <sizePerZoneCount> \ --operating-system RHCOS
N'ajoutez pas de zones à ce pool de travailleurs RHCOS. Il ne devrait y avoir aucun travailleur dans cette réserve de travailleurs.
Étape 3 : Ajouter des étiquettes de pool de travailleurs au pool de travailleurs RHCOS
Ajoutez les étiquettes suivantes à votre pool de travailleurs RHCOS.
nvidia.com/gpu.deploy.operands=false. Pour plus d'informations, voir Empêcher l'installation d'opérandes sur certains nœudsnvidia.com/gpu.deploy.driver=false. Pour plus d'informations, voir Empêcher l'installation du pilote GPU NVIDIA sur certains nœuds
L'ajout d'étiquettes au pool de travailleurs permet aux étiquettes de nœuds d'exister avant que les nœuds de travailleurs ne soient disponibles pour la mise en cluster. Cela permet de s'assurer que les ressources GPU de NVIDIA ne sont pas automatiquement planifiées dès le départ. Si les ressources GPU NVIDA sont planifiées sur des nœuds de travail où les pilotes ne peuvent pas être installés, l'état de la ressource ClusterPolicy s'en trouvera dégradé. Les pilotes ne peuvent pas encore être installés sur les nœuds de travail RHCOS car l'opérateur GPU NVIDIA est configuré pour utiliser la méthode d'installation RHEL 8.
Exécutez la commande suivante pour ajouter des étiquettes à votre pool de travailleurs.
ibmcloud oc worker-pool label set \
--cluster <clusterNameOrID> \
--worker-pool <workerPoolNameOrID> \
--label nvidia.com/gpu.deploy.operands=false \
--label nvidia.com/gpu.deploy.driver=false
Étape 4 : Ajouter les nœuds de travail RHCOS au cluster
Ajoutez de la capacité à votre cluster pour permettre la migration de la charge de travail. L'ajout de zones au pool de travailleurs déclenche le démarrage de l'approvisionnement des nœuds de travailleurs et leur adhésion au cluster. Notez que les ressources GPU de NVIDIA ne sont pas encore déployées sur les nœuds de travail RHCOS.
ibmcloud oc zone add vpc-gen2 \
--cluster <clusterNameOrID> \
--worker-pool <workerPoolNameOrID> \
--subnet-id <vpcSubnetID> \
--zone <vpcZone>
À ce stade, les nœuds de travail RHCOS sont disponibles dans le cluster pour commencer la migration.
Étape 5 : Modifier le programme d'installation du pilote sur les nœuds de travail RHEL 8 pour qu'il soit non géré
Ajoutez l'étiquette nvidia.com/gpu.deploy.driver=false à vos nœuds de travail RHEL 8. Cette étiquette désordonne les pods d'installation de pilotes existants des travailleurs RHEL 8. Le pilote ne doit pas être désinstallé. Les
autres opérandes, y compris les plug-ins de périphériques, restent sur les travailleurs RHEL 8. L'état de ClusterPolicy reste prêt. Étant donné que le pilote est toujours installé et que le plug-in de périphérique est en cours
d'exécution, les charges de travail du GPU continuent de fonctionner.
-
Ajoutez le site
nvidia.com/gpu.deploy.driver=falseaux nœuds de travail RHEL 8.Pour attribuer une étiquette à un nœud de travail individuel :
oc label nodes <nodeName> "nvidia.com/gpu.deploy.driver=false"Pour étiqueter l'ensemble d'un groupe de travailleurs :
ibmcloud oc worker-pool label set \ --cluster <clusterNameOrID> \ --worker-pool <workerPoolNameOrID> \ --label nvidia.com/gpu.deploy.driver=false -
Lister les gousses pour confirmer les étiquettes.
oc get po -n nvidia-gpu-operator -o wideExemple de sortie
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES gpu-feature-discovery-ng7zn 1/1 Running 0 4h27m 172.23.145.152 10.240.0.15 <none> <none> gpu-operator-678b489684-7zgkq 1/1 Running 0 2d2h 172.23.145.135 10.240.0.15 <none> <none> nvidia-container-toolkit-daemonset-j4dzs 1/1 Running 0 4h27m 172.23.145.143 10.240.0.15 <none> <none> nvidia-cuda-validator-l44mz 0/1 Completed 0 4h24m 172.23.145.236 10.240.0.15 <none> <none> nvidia-dcgm-7sfvn 1/1 Running 0 4h27m 172.23.145.180 10.240.0.15 <none> <none> nvidia-dcgm-exporter-s5k48 1/1 Running 0 4h27m 172.23.145.172 10.240.0.15 <none> <none> nvidia-device-plugin-daemonset-xhds2 1/1 Running 0 4h27m 172.23.145.191 10.240.0.15 <none> <none> nvidia-driver-daemonset-mjqls 1/1 Terminating 0 4h28m 172.23.145.145 10.240.0.15 <none> <none> nvidia-node-status-exporter-5kvs4 1/1 Running 0 4h28m 172.23.145.235 10.240.0.15 <none> <none> nvidia-operator-validator-pz7wm 1/1 Running 0 4h27m 172.23.145.153 10.240.0.15 <none> <none> -
Confirmez que le site
gpu-cluster-policyestready.oc get clusterpolicies.nvidia.com gpu-cluster-policyExemple de sortie
NAME STATUS AGE gpu-cluster-policy ready 2025-03-07T03:07:00Z
Étape 6 : Programmation du programme d'installation du pilote et d'autres opérandes sur les nœuds de travail RHCOS
Ajoutez les sites nvidia.com/gpu.deploy.driver=true et nvidia.com/gpu.deploy.operands=true à vos travailleurs RHCOS.
L'ajout de ces étiquettes tente de planifier l'installateur de pilote, le plug-in de périphérique et d'autres opérandes vers les nœuds de travail RHCOS. La plupart des pods sont dans l'état init en raison de l'échec de l'installation
du pilote. Le programme d'installation du pilote échoue car il tente d'installer le pilote à l'aide de la méthode RHEL 8.
Exécutez la commande label nodes pour ajouter des étiquettes.
Pour attribuer une étiquette à un nœud de travail individuel :
oc label nodes <nodeName> "nvidia.com/gpu.deploy.driver=true"
oc label nodes <nodeName> "nvidia.com/gpu.deploy.operands=true"
Pour étiqueter l'ensemble d'un groupe de travailleurs :
ibmcloud oc worker-pool label set \
--cluster <clusterNameOrID> \
--worker-pool <workerPoolNameOrID> \
--label nvidia.com/gpu.deploy.driver=true
Après avoir ajouté les étiquettes, passez à l'étape suivante.
Étape 7 : Conversion du programme d'installation des pilotes de RHEL 8 à la méthode d'installation RHCOS
Supprimer nvidia-driver-installer DaemonSet. Cette adresse DaemonSet est spécifique à RHEL 8 et n'est plus nécessaire. L'opérateur GPU effectue la réconciliation et détecte la présence d'un nœud de travail RHCOS dans la grappe.
L'opérateur GPU recrée le programme d'installation du pilote DaemonSet,, mais avec la méthode d'installation RHCOS basée sur OpenShift Driver Toolkit.
-
Supprimer
nvidia-driver-installerDaemonSet. Après avoir supprimé le site DaemonSet,, n'ajoutez ni ne rechargez aucun des GPU workers de RHEL 8.oc delete daemonset -n nvidia-gpu-operator nvidia-driver-installer -
Lister les pods et confirmer que le pilote GPU est installé sur les nœuds de travail RHCOS et que les opérandes restants sont
ready.oc get po -n nvidia-gpu-operator -o wideExemple de sortie
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES gpu-feature-discovery-h4bhx 1/1 Running 0 18m 172.23.137.119 test-coajphf20ooqeeg7u9dg-btsstagevpc-gx316x8-000239a8 <none> <none> gpu-feature-discovery-ng7zn 1/1 Running 0 4h58m 172.23.145.152 10.240.0.15 <none> <none> gpu-operator-678b489684-7zgkq 1/1 Running 0 2d2h 172.23.145.135 10.240.0.15 <none> <none> nvidia-container-toolkit-daemonset-79j86 1/1 Running 0 18m 172.23.137.115 test-coajphf20ooqeeg7u9dg-btsstagevpc-gx316x8-000239a8 <none> <none> nvidia-container-toolkit-daemonset-j4dzs 1/1 Running 0 4h58m 172.23.145.143 10.240.0.15 <none> <none> nvidia-cuda-validator-l44mz 0/1 Completed 0 4h55m 172.23.145.236 10.240.0.15 <none> <none> nvidia-cuda-validator-xgscz 0/1 Completed 0 15m 172.23.137.121 test-coajphf20ooqeeg7u9dg-btsstagevpc-gx316x8-000239a8 <none> <none> nvidia-dcgm-7sfvn 1/1 Running 0 4h58m 172.23.145.180 10.240.0.15 <none> <none> nvidia-dcgm-9rpnz 1/1 Running 0 18m 172.23.137.117 test-coajphf20ooqeeg7u9dg-btsstagevpc-gx316x8-000239a8 <none> <none> nvidia-dcgm-exporter-s5k48 1/1 Running 0 4h58m 172.23.145.172 10.240.0.15 <none> <none> nvidia-dcgm-exporter-x8vlc 1/1 Running 2 (14m ago) 18m 172.23.137.116 test-coajphf20ooqeeg7u9dg-btsstagevpc-gx316x8-000239a8 <none> <none> nvidia-device-plugin-daemonset-7g5hz 1/1 Running 0 18m 172.23.137.120 test-coajphf20ooqeeg7u9dg-btsstagevpc-gx316x8-000239a8 <none> <none> nvidia-device-plugin-daemonset-xhds2 1/1 Running 0 4h58m 172.23.145.191 10.240.0.15 <none> <none> nvidia-driver-daemonset-416.94.202502260030-0-dkcmh 2/2 Running 0 19m 172.23.137.107 test-coajphf20ooqeeg7u9dg-btsstagevpc-gx316x8-000239a8 <none> <none> nvidia-node-status-exporter-5kvs4 1/1 Running 0 5h 172.23.145.235 10.240.0.15 <none> <none> nvidia-node-status-exporter-94v9f 1/1 Running 0 19m 172.23.137.110 test-coajphf20ooqeeg7u9dg-btsstagevpc-gx316x8-000239a8 <none> <none> nvidia-operator-validator-4wk6z 1/1 Running 0 18m 172.23.137.118 test-coajphf20ooqeeg7u9dg-btsstagevpc-gx316x8-000239a8 <none> <none> nvidia-operator-validator-pz7wm 1/1 Running 0 4h58m 172.23.145.153 10.240.0.15 <none> <none> -
Confirmer que le site
gpu-cluster-policyest prêt.oc get clusterpolicies.nvidia.com gpu-cluster-policyExemple de sortie
NAME STATUS AGE gpu-cluster-policy ready 2025-03-07T03:07:00Z -
Décrivez vos nœuds et confirmez les GPU allouables.
oc describe noExemple de sortie
... Capacity: nvidia.com/gpu: 1 ... Allocatable: nvidia.com/gpu: 1
Étape 8 : Migration des charges de travail dépendantes du GPU vers les nœuds de travail RHCOS
Maintenant que les nœuds RHCOS GPU worker nodes ont installé le pilote GPU et sont prêts à être planifiés, migrez les charges de travail dépendantes du GPU vers les nœuds RHCOS worker nodes.
-
Migrer par pod en cordonnant le nœud et en supprimant les pods individuels.
oc adm cordon no/<nodeName> oc delete po -n <namespace> <podName> -
Migrer par Node en drainant les nœuds. Pour plus d'informations, voir Drainage d'un nœud en toute sécurité.
-
Migrez par groupe de travailleurs en supprimant l'ensemble de votre groupe de travailleurs RHEL.
ibmcloud oc worker-pool rm --cluster <clusterNameOrID> --worker-pool <workerPoolNameOrID>
Étape 9 : Supprimer les étiquettes de votre pool de travailleurs RHCOS
Supprimez les étiquettes du pool de travailleurs que vous avez ajoutées à l'étape précédente. Cette suppression garantit que les nouveaux nœuds de travail RHCOS provisionnés par la suite n'ont pas ces étiquettes et que les composants GPU NVIDIA sont automatiquement installés.
Étape 10 : Réduire ou supprimer le pool de travailleurs RHEL 8
À ce stade, la migration du pilote GPU NVIDIA est terminée. Vous pouvez réduire ou supprimer vos pools de travailleurs RHEL.
ibmcloud oc worker-pool rm --cluster <clusterNameOrID> --worker-pool <workerPoolNameOrID>