View a markdown version of this page

Recette : empêcher la planification de pods sur des nœuds spécifiques - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Recette : empêcher la planification de pods sur des nœuds spécifiques

Vue d’ensemble

Les nœuds dotés de processeurs spécialisés, tels que les GPU, peuvent être plus coûteux à exploiter que les nœuds sur des machines standard. Pour protéger ces nœuds des charges de travail qui ne nécessitent pas de matériel spécial, vous pouvez utiliser les rejets Kubernetes. Les rejets marquent les nœuds afin de repousser les pods qui ne disposent pas de tolérances correspondantes, garantissant ainsi que seules les charges de travail compatibles sont planifiées. Pour plus d’informations, consultez Rejets et tolérances dans la documentation de Kubernetes.

Les empreintes de nœuds Kubernetes peuvent être appliquées à des groupes de nœuds gérés nouveaux et existants à l'aide de Console de gestion AWS ou via l'API Amazon EKS. Cette recette montre comment appliquer des contaminations à des groupes de nœuds gérés par Amazon EKS à l'aide de l' AWS interface de ligne de commande. Pour plus d'informations sur la création d'un groupe de nœuds avec une altération à l'aide de la Console de gestion AWS, consultezCréation d’un groupe de nœuds gérés pour votre cluster.

Conditions préalables

Étapes

Étape 1 : créer un groupe de nœuds avec des rejets

Utilisez la commande aws eks create-nodegroup pour créer un nouveau groupe de nœuds gérés avec des rejets. Cet exemple applique un rejet avec la clé dedicated, la valeur gpuGroup et l’effet NO_SCHEDULE.

aws eks create-nodegroup \ --cli-input-json ' { "clusterName": "my-cluster", "nodegroupName": "node-taints-example", "subnets": [ "subnet-1234567890abcdef0", "subnet-abcdef01234567890", "subnet-021345abcdef67890" ], "nodeRole": "arn:aws: iam::111122223333:role/AmazonEKSNodeRole", "taints": [ { "key": "dedicated", "value": "gpuGroup", "effect": "NO_SCHEDULE" } ] }'

Pour plus d’informations et d’exemples, consultez rejet dans la documentation de référence Kubernetes.

Étape 2 : mettre à jour les rejets sur un groupe de nœuds existant

Utilisez la commande AWS CLI aws eks update-nodegroup-config pour ajouter, supprimer ou remplacer des rejets pour les groupes de nœuds gérés.

aws eks update-nodegroup-config \ --cluster-name my-cluster \ --nodegroup-name node-taints-example \ --taints 'removeTaints=[{key=dedicated,value=gpuGroup,effect=NO_SCHEDULE}]'

Remarques

  • Les rejets peuvent être mis à jour après avoir créé le groupe de nœuds à l'aide de l'API UpdateNodegroupConfig.

  • La clé de rejet doit commencer par une lettre ou un chiffre. Il peut contenir des lettres, des chiffres, des traits d'union (-), des points (.) et des traits de soulignement (_). Il peut comporter jusqu'à 63 caractères.

  • Éventuellement, la clé de rejet peut commencer par un préfixe de sous-domaine DNS et un simple /. Si elle commence par un préfixe de sous-domaine DNS, elle peut comporter 253 caractères.

  • La valeur est facultative et doit commencer par une lettre ou un chiffre. Il peut contenir des lettres, des chiffres, des traits d'union (-), des points (.) et des traits de soulignement (_). Il peut comporter jusqu'à 63 caractères.

  • Lorsque vous utilisez directement Kubernetes ou la Console de gestion AWS, l’effet du rejet doit être NoSchedule, PreferNoSchedule ou NoExecute. Toutefois, lorsque vous utilisez la AWS CLI ou l'API, l'effet d'altération doit être NO_SCHEDULEPREFER_NO_SCHEDULE, ouNO_EXECUTE.

  • Un maximum de 50 rejets est autorisé pour un groupe de nœuds.

  • Si les rejets créés à l’aide d’un groupe de nœuds gérés sont supprimés manuellement d’un nœud, Amazon EKS ne les ajoute pas à nouveau au nœud. Ceci est vrai même si les rejets sont spécifiés dans la configuration du groupe de nœuds gérés.