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.
Contrôle du déploiement d’une charge de travail sur les nœuds du mode automatique EKS
Lors de l’exécution de charges de travail dans un cluster EKS utilisant le mode automatique EKS, il peut être nécessaire de contrôler si certaines charges de travail doivent s’exécuter sur des nœuds du mode automatique EKS ou sur d’autres types de calcul. Cette section explique comment utiliser des sélecteurs de nœuds et des règles d’affinité pour garantir que vos charges de travail soient planifiées sur l’infrastructure de calcul souhaitée.
Les exemples de cette rubrique montrent comment utiliser l’étiquette eks.amazonaws.com/compute-type pour imposer ou empêcher le déploiement d’une charge de travail sur les nœuds du mode automatique EKS. Cette approche est particulièrement utile dans les clusters en mode mixte, où vous utilisez à la fois le mode automatique EKS et d’autres types de calcul, tels que les fournisseurs Karpenter autogérés ou les groupes de nœuds gérés par EKS.
Les nœuds du mode automatique EKS définissent l’étiquette eks.amazonaws.com/compute-type sur auto. Vous pouvez utiliser cette étiquette pour contrôler si une charge de travail est déployée sur des nœuds gérés par le mode automatique EKS.
Exiger qu'une charge de travail soit déployée sur les nœuds EKS Auto Mode
Note
Cette valeur nodeSelector n’est pas obligatoire pour le mode automatique EKS. Cette valeur nodeSelector n’est pertinente que si vous exécutez un cluster en mode mixte, avec des types de nœuds non gérés par le mode automatique EKS. Par exemple, un cluster peut combiner une capacité de calcul statique fournie par les groupes de nœuds gérés par EKS et une capacité dynamique fournie par le mode automatique EKS.
Vous pouvez ajouter ce nodeSelector aux déploiements ou à d’autres charges de travail afin d’indiquer à Kubernetes à les planifier exclusivement sur des nœuds du mode automatique EKS.
apiVersion: apps/v1 kind: Deployment spec: template: spec: nodeSelector: eks.amazonaws.com/compute-type: auto
Exiger qu'aucune charge de travail ne soit déployée sur les nœuds EKS Auto Mode
Vous pouvez ajouter ce nodeAffinity aux déploiements ou à d’autres charges de travail afin d’indiquer à Kubernetes de ne pas les planifier sur des nœuds du mode automatique EKS.
affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: eks.amazonaws.com/compute-type operator: NotIn values: - auto
Ciblez un objectif spécifique NodePool
Un cluster Amazon EKS Auto Mode peut en avoir plusieurs NodePool. Vous souhaiterez peut-être qu'une charge de travail ne s'exécute que sur les nœuds d'un nœud en particulier NodePool. Pour ce faire, les charges de travail peuvent correspondre à l'une des étiquettes suivantes :
-
Une étiquette personnalisée que vous définissez sur le NodePool. Lorsque vous ajoutez des étiquettes
spec.template.metadata.labelssous un NodePool, le mode automatique Amazon EKS applique ces étiquettes à chaque nœud NodePool provisionné. Les étiquettes personnalisées constituent l'approche recommandée. Une étiquette personnalisée associe la charge de travail à une fonctionnalité, par exempleworkload-class: gpu-inference, plutôt qu'à un NodePool nom spécifique. -
Le célèbre
karpenter.sh/nodepoollabel. Amazon EKS Auto Mode applique cette étiquette à chaque nœud qu'il approvisionne, en utilisant le nom de NodePool comme valeur. Utilisez cette étiquette lorsque vous n'avez pas défini d'étiquette personnalisée et que vous souhaitez cibler une étiquette NodePool par son nom.
Ciblez une NodePool étiquette personnalisée
Tout d'abord, définissez une étiquette sur le NodePool.
apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: gpu spec: template: metadata: labels: workload-class: gpu-inference
Pour plus d'informations sur NodePool la configuration, consultezCréation d’un pool de nœuds pour le mode automatique EKS.
Ensuite, faites correspondre cette étiquette à la charge de travail.
apiVersion: apps/v1 kind: Deployment metadata: name: inference spec: template: spec: nodeSelector: workload-class: gpu-inference
Les pods de ce calendrier de déploiement sont uniquement destinés aux nœuds qu'il met à gpu NodePool disposition. Les charges de travail qui ne le sont pas nodeSelector continuent de s'exécuter par défaut NodePool.
Ciblez un NodePool par son nom
NodePool les changements de nom affectent la planification
L'épinglage d'une charge de travail par son nom peut laisser les pods dans Pending cet état si vous renommez ou supprimez la cible. NodePool Utilisez une étiquette de fonctionnalité personnalisée pour toute charge de travail dont vous pensez qu'elle durera plus longtemps qu'une seule NodePool définition.
apiVersion: apps/v1 kind: Deployment spec: template: spec: nodeSelector: karpenter.sh/nodepool: <your-nodepool-name>
Pour plus d'informations sur la façon dont Karpenter associe les pods aux pods NodePools, consultez la section Planification