Contribuisci a migliorare questa pagina
Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.
Ricetta: impedire che i pod siano programmati su nodi specifici
Panoramica
I nodi con processori specializzati, come le GPU, 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, è possibile utilizzare taint Kubernetes. I taint contrassegnano i nodi per respingere i pod che non hanno tolleranze corrispondenti, assicurando che siano pianificati solo carichi di lavoro compatibili. Per ulteriori informazioni, consulta Taint e tolleranze
I taint dei nodi Kubernetes possono essere applicati a gruppi di nodi gestiti nuovi ed esistenti utilizzando il comando Console di gestione AWS o tramite l'API Amazon EKS. Questa ricetta mostra come applicare i taint ai gruppi di nodi gestiti di Amazon EKS utilizzando AWS CLI. Per informazioni sulla creazione di un gruppo di nodi con un taint utilizzando la Console di gestione AWS, consulta Creare un gruppo di nodi gestiti per il cluster.
Prerequisiti
-
AWS CLI installata e configurata con autorizzazioni appropriate.
Fasi
Passaggio 1: creazione di un gruppo di nodi con i taint
Utilizza il comando aws eks create-nodegroup per creare un nuovo gruppo di nodi gestito con taint. Questo esempio applica un taint con chiave dedicated, valore gpuGroup 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: aggiornamento dei taint su un gruppo di nodi esistente
Utilizzare il comando AWS CLI aws eks update-nodegroup-config 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 Console di gestione AWS, l’effetto taint deve essere
NoSchedule,PreferNoScheduleoNoExecute. Tuttavia, quando si utilizza AWS direttamente o l’API, l’effetto taint deve essereNO_SCHEDULE,PREFER_NO_SCHEDULEoNO_EXECUTE. -
Sono consentiti un massimo di 50 taint per un gruppo di nodi.
-
Se i taint creati utilizzando un gruppo di nodi gestito vengono rimossi manualmente da un nodo, Amazon EKS non li aggiunge nuovamente al nodo. Questo è vero anche se i taint sono specificati nella configurazione del gruppo di nodi gestito.