Module d'extension GPU AMD
Lorsque vous activez l'extension de cluster de modules d'extension GPU AMD, vous pouvez transmettre les paires clé/valeur suivantes en tant qu'arguments.
Notez que pour vous assurer que les charges de travail exécutées sur les noeuds de processus actif de GPU AMD ne sont pas interrompues de manière inattendue, nous vous recommandons de choisir la version du module d'extension de GPU AMD à déployer, plutôt que d'indiquer que vous souhaitez qu'Oracle mette à jour le module automatiquement.
| Clé (API et CLI) | Nom d'affichage de la clé (console) | Description | Obligatoire/Facultatif | Valeur par défaut | Exemple de valeur |
|---|---|---|---|---|---|
affinity |
affinité |
Groupe de règles de programmation d'affinité. Format JSON en texte brut ou encodé Base64. Non utilisé par:
Equivalents possibles :
|
Facultatif | NULL | NULL |
nodeSelectors |
Sélecteurs de noeud |
Vous pouvez utiliser des sélecteurs de noeud et des libellés de noeud pour contrôler les noeuds de processus actif sur lesquels les pods d'extension sont exécutés. Pour qu'un pod s'exécute sur un noeud, le sélecteur de noeud du pod doit avoir la même clé/valeur que l'étiquette du noeud. Définissez Format JSON en texte brut ou encodé Base64. Non utilisé par:
Equivalents possibles :
|
Facultatif | NULL | {"foo":"bar", "foo2": "bar2"}Le pod s'exécutera uniquement sur les noeuds possédant le libellé |
numOfReplicas |
numOfReplicas | Nombre de répliques du déploiement de l'extension. Non utilisé par:
Equivalents possibles :
|
Requis | 1Crée une réplique du déploiement d'extension par cluster. |
2Crée deux répliques du déploiement d'extension par cluster. |
rollingUpdate |
rollingUpdate |
Contrôle le comportement souhaité de la mise à jour non simultanée par maxSurge et maxUnavailable. Format JSON en texte brut ou encodé Base64. Non utilisé par:
Equivalents possibles :
|
Facultatif | NULL | NULL |
tolerations |
tolérances |
Vous pouvez utiliser des tolérances et des taches pour contrôler les noeuds de processus actif sur lesquels les pods d'extension s'exécutent. Pour qu'un pod s'exécute sur un noeud présentant une entorse, le pod doit avoir une tolérance correspondante. Définissez Format JSON en texte brut ou encodé Base64. Equivalents possibles :
|
Facultatif | NULL | [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]Seuls les pods présentant cette tolérance peuvent être exécutés sur des noeuds de processus actif présentant la tache |
topologySpreadConstraints |
topologySpreadConstraints |
Comment répartir les pods correspondants entre la topologie donnée. Format JSON en texte brut ou encodé Base64. Non utilisé par:
|
Facultatif | NULL | NULL |
| Clé (API et CLI) | Nom d'affichage de la clé (console) | Description | Obligatoire/Facultatif | Valeur par défaut | Exemple de valeur |
|---|---|---|---|---|---|
amd-gpu-device-plugin.ContainerResources |
ressources de conteneur amd-gpu-device-plugin |
Vous pouvez spécifier les quantités de ressources demandées par les conteneurs d'extension et définir les limites d'utilisation des ressources que les conteneurs d'extension ne peuvent pas dépasser. Format JSON en texte brut ou encodé Base64. |
Facultatif | NULL |
{"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}
Créez des conteneurs d'extension qui demandent 100 milllicores de CPU et 100 mégaoctets de mémoire. Limitez les conteneurs d'extension à 500 milllicores de CPU et 200 mégaoctets de mémoire. |
pulse
|
Activer les vérifications de l'état |
Intervalle (en secondes) entre la mise à jour du kubelet avec l'état d'intégrité du périphérique par le module d'extension. Définissez la valeur sur |
Facultatif |
0
|
Le tableau suivant décrit les considérations relatives à la configuration de ce module complémentaire de cluster dans les clusters volumineux.
| Nom d'argument | Nombre de noeuds de processus métier de rôles | Description | à mesure que la taille du cluster augmente | Risques | Recommandation |
|---|---|---|---|---|---|
amd-gpu-device-plugin.ContainerResources
|
Y (Oui) |
Définit les demandes de CPU et de mémoire et les limites pour les conteneurs de module d'extension de GPU AMD. |
Le module d'extension s'exécute sur chaque noeud de GPU. L'utilisation totale des ressources augmente linéairement avec le nombre de noeuds GPU. Les activités suivantes augmentent :
|
Si les ressources sont sous-dimensionnées :
|
Augmentez la mémoire et la CPU allouées sur chaque noeud en fonction des facteurs suivants :
Surveillez les journaux de kubelet et l'utilisation de la CPU et de la mémoire du module d'extension. |
nodeSelectors/affinity
|
Y (Oui) |
Contrôle les noeuds sur lesquels le module d'extension s'exécute à l'aide de libellés. |
Garantit que le module d'extension s'exécute uniquement sur les noeuds GPU AMD. Empêche la planification inutile sur les noeuds de CPU uniquement. |
Si aucun sélecteur n'est spécifié, le module d'extension s'exécute sur tous les noeuds et gaspille les ressources. Si le sélecteur indiqué est incorrect, le module d'extension ne s'exécute pas sur les noeuds GPU et les GPU ne sont pas visibles par Kubernetes. Même une petite erreur de configuration affectant 1 à 2 % des noeuds peut entraîner des centaines de noeuds mal configurés, une disponibilité de GPU incohérente et des échecs de planification imprévisibles. |
Utilisez l'étiquetage strict des noeuds. |
tolerations
|
Y (Oui) |
Contrôle si le module d'extension peut être exécuté sur des noeuds GPU endommagés. |
S'il n'est pas configuré correctement, le démon DaemonSet du module d'extension de GPU AMD risque de ne pas planifier sur les noeuds GPU présentant des taches, ce qui empêche la détection des ressources GPU et rend les GPU indisponibles pour la planification de la charge globale. |
Si les tolérances sont mal configurées, le module d'extension ne peut pas s'exécuter sur les noeuds GPU et les GPU deviennent inutilisables. |
Assurez-vous que les tolérances correspondent aux taches appliquées aux noeuds GPU. |
pulse
|
Y (Oui) |
Contrôle la fréquence à laquelle le plug-in signale les informations d'intégrité du GPU au kubelet. |
Une fréquence de reporting plus élevée offre une meilleure visibilité sur l'état des GPU, mais génère davantage de trafic de kubelets et d'API. Une fréquence de reporting plus faible réduit les frais généraux mais retarde la détection des défaillances. |
Si les mises à jour sont trop fréquentes, la surcharge de la CPU sur chaque noeud et la charge des kubelets augmentent. Si les mises à jour sont trop rares ou désactivées, les informations sur l'état des GPU peuvent devenir obsolètes et le planificateur peut affecter des charges de travail à des GPU en mauvais état. |
Utilisez un intervalle modéré qui équilibre la visibilité de l'état par rapport aux frais généraux. Évitez les sondages trop agressifs. |
rollingUpdate
|
N |
Contrôle le comportement de mise à jour. |
Dans les clusters volumineux, de nombreux noeuds peuvent être mis à jour simultanément, ce qui affecte la disponibilité des GPU lors des mises à niveau. |
|
Utilisez des mises à jour non simultanées contrôlées pour éviter toute interruption généralisée. |
numOfReplicas
|
N |
Cet argument n'est pas utilisé par le module d'extension GPU AMD. |
Non applicable | Non applicable | Non applicable |