Aiutaci 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 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à.
Ricetta: impedire che i pod vengano programmati su nodi specifici
Panoramica
I nodi con processori specializzati, ad esempio GPUs, possono essere più costosi da eseguire rispetto ai nodi su macchine standard. Per proteggere questi nodi da carichi di lavoro che non richiedono hardware speciale, puoi utilizzare Kubernetes taints. I taint contrassegnano i nodi per respingere i pod che non hanno tolleranze corrispondenti, assicurando che vengano pianificati solo carichi di lavoro compatibili. Per ulteriori informazioni, consulta Taints and
I nodi Kubernetes possono essere applicati a gruppi di nodi gestiti nuovi ed esistenti utilizzando o AWS Management Console tramite l'API Amazon EKS. Questa ricetta mostra come applicare i taint ai gruppi di nodi gestiti di Amazon EKS utilizzando la AWS CLI. Per informazioni sulla creazione di un gruppo di nodi con una macchia utilizzando il AWS Management Console, consulta. Crea un gruppo di nodi gestito per il tuo cluster
Prerequisiti
-
AWS CLI installata e configurata con le autorizzazioni appropriate.
Fasi
Fase 1: Creare un gruppo di nodi con macchie
Usa il aws eks create-nodegroup
comando per creare un nuovo gruppo di nodi gestito con taints. Questo esempio applica una sfumatura con chiave dedicated
gpuGroup
, valore ed effetto. 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" } ] }'
Per ulteriori informazioni ed esempi, consulta taint
Passaggio 2: aggiorna i taint su un gruppo di nodi esistente
Usa il comando aws eks update-nodegroup-config AWS CLI per aggiungere, rimuovere o sostituire i taint per i gruppi di nodi gestiti.
aws eks update-nodegroup-config --cluster-name my-cluster --nodegroup-name node-taints-example --taints 'removeTaints=[{key=dedicated,value=gpuGroup,effect=NO_SCHEDULE}]'
Note
-
I taint possono essere aggiornati dopo aver creato il gruppo di nodi utilizzando l'API
UpdateNodegroupConfig
. -
La chiave del taint deve iniziare con una lettera o un numero. Può includere lettere, numeri, trattini (
-
), punti (.
) e trattini bassi (_
). Può contenere fino a 63 caratteri. -
Facoltativamente, la chiave del taint può iniziare con un prefisso di sottodominio DNS e un singolo
/
. Se inizia con un prefisso di sottodominio DNS, può avere una lunghezza di 253 caratteri. -
Il valore è facoltativo e deve iniziare con una lettera o un numero. Può includere lettere, numeri, trattini (
-
), punti (.
) e trattini bassi (_
). Può contenere fino a 63 caratteri. -
Quando si utilizza Kubernetes direttamente o il AWS Management Console, l'effetto taint deve essere, o.
NoSchedule
PreferNoSchedule
NoExecute
Tuttavia, quando si utilizza la AWS CLI o l'API, l'effetto contaminante deve essereNO_SCHEDULE
,PREFER_NO_SCHEDULE
o.NO_EXECUTE
-
Sono consentiti un massimo di 50 taint per un gruppo di nodi.
-
Se le contaminazioni create utilizzando un gruppo di nodi gestito vengono rimosse manualmente da un nodo, Amazon EKS non le aggiunge nuovamente al nodo. Questo è vero anche se i taint sono specificati nella configurazione del gruppo di nodi gestito.