Controllare se un carico di lavoro viene implementato sui nodi della modalità automatica di EKS - Amazon EKS

View a markdown version of this page

Controllare se un carico di lavoro viene implementato sui nodi della modalità automatica di EKS - Amazon EKS

Contribuisci a migliorare questa pagina

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina su che si trova nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Controllare se un carico di lavoro viene implementato sui nodi della modalità automatica di EKS

Quando si eseguono carichi di lavoro in un cluster EKS con la modalità automatica di EKS, potresti dover controllare se carichi di lavoro specifici vengono eseguiti su nodella modalità automatica di EKS o altri tipi di elaborazione. Questo argomento descrive come utilizzare i selettori di nodi e le regole di affinità per garantire che i carichi di lavoro siano pianificati sull’infrastruttura di elaborazione prevista.

Gli esempi in questo argomento mostrano come utilizzare l’etichetta eks.amazonaws.com/compute-type per richiedere o impedire l’implementazione del carico di lavoro sui nodi della modalità automatica di EKS. Ciò è particolarmente utile nei cluster a modalità mista in cui è in esecuzione sia modalità automatica di EKS che altri tipi di elaborazione, come i provisioner Karpenter autogestiti o i gruppi di nodi gestiti da EKS.

I nodi della modalità automatica di EKS hanno impostato il valore dell’etichetta da eks.amazonaws.com/compute-type a auto. Puoi utilizzare questa etichetta per controllare se un carico di lavoro viene implementato nei nodi gestiti dalla modalità automatica di EKS.

Richiedere che un carico di lavoro sia distribuito sui nodi EKS Auto Mode

Nota

Questo valore nodeSelector non è richiesto per la modalità automatica di EKS. Questo valore nodeSelector è rilevante solo se si esegue un cluster in modalità mista, con tipi di nodi non gestiti dalla modalità automatica di EKS. Ad esempio, puoi avere una capacità di elaborazione statica implementata nel cluster con o gruppi di nodi gestiti da EKS e avere una capacità di elaborazione dinamica gestita dalla modalità automatica di EKS.

Puoi aggiungere questo nodeSelector alle implementazioni o ad altri carichi di lavoro per richiedere che Kubernetes li pianifichi sui nodi della modalità automatica di EKS.

apiVersion: apps/v1 kind: Deployment spec: template: spec: nodeSelector: eks.amazonaws.com/compute-type: auto

Richiede che un carico di lavoro non sia distribuito sui nodi EKS Auto Mode

Puoi aggiungere questo nodeAffinity alle implementazioni o ad altri carichi di lavoro per richiedere che Kubernetes non li pianifichi sui nodi della modalità automatica di EKS.

affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: eks.amazonaws.com/compute-type operator: NotIn values: - auto

Scegli come target uno specifico NodePool

Un cluster Amazon EKS Auto Mode può averne più di uno NodePool. Potresti volere che un carico di lavoro venga eseguito solo sui nodi di un determinato NodePool nodo. A tale scopo, i carichi di lavoro possono corrispondere a una delle seguenti etichette:

  • Un'etichetta personalizzata definita in. NodePool Quando aggiungi etichette spec.template.metadata.labels in a NodePool, Amazon EKS Auto Mode applica tali etichette a tutti i nodi di cui esegue il NodePool provisioning. Le etichette personalizzate sono l'approccio consigliato. Un'etichetta personalizzata lega il carico di lavoro a una funzionalità, ad esempioworkload-class: gpu-inference, anziché a un NodePool nome specifico.

  • L'karpenter.sh/nodepooletichetta ben nota. Amazon EKS Auto Mode applica questa etichetta a tutti i nodi di cui esegue il provisioning, utilizzando il nome di NodePool come valore. Usa questa etichetta quando non hai definito un'etichetta personalizzata e vuoi impostarne una NodePool per nome.

Scegli come target un' NodePool etichetta personalizzata

Innanzitutto, definisci un'etichetta su NodePool.

apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: gpu spec: template: metadata: labels: workload-class: gpu-inference

Per ulteriori informazioni sulla NodePool configurazione, vedereCrea un pool di nodi per la modalità automatica di EKS.

Quindi, abbina l'etichetta del carico di lavoro.

apiVersion: apps/v1 kind: Deployment metadata: name: inference spec: template: spec: nodeSelector: workload-class: gpu-inference

I pod di questa pianificazione di distribuzione si limitano ai nodi di cui dispone. gpu NodePool I carichi di lavoro senza questa impostazione nodeSelector continuano a essere eseguiti sulle impostazioni predefinite. NodePool

Scegli come target a NodePool per nome

NodePool le modifiche al nome influiscono sulla pianificazione

Se si rinomina o si elimina la destinazione, se si aggiunge un nome a un carico di lavoro in base al nomePending, i pod rimangono invariati. NodePool Usa un'etichetta di funzionalità personalizzata per qualsiasi carico di lavoro che prevedi possa durare più a lungo di una singola definizione. NodePool

apiVersion: apps/v1 kind: Deployment spec: template: spec: nodeSelector: karpenter.sh/nodepool: <your-nodepool-name>

Per ulteriori informazioni su come Karpenter abbina i pod NodePools, consulta Scheduling nella documentazione di Karpenter.