Crea un gruppo di nodi gestito per il tuo cluster - Amazon EKS

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à.

Crea un gruppo di nodi gestito per il tuo cluster

In questo argomento viene descritto come avviare gruppi di nodi gestiti Amazon EKS per nodi che si registrano con il cluster Amazon EKS. Dopo che i nodi vengono aggiunti al cluster, puoi implementare applicazioni Kubernetes per gli stessi.

Se è la prima volta che lanci un gruppo di nodi gestiti di Amazon EKS, ti consigliamo invece di seguire una delle nostre guide. Nozioni di base su Amazon EKS Queste guide forniscono procedure dettagliate per creare un cluster Amazon EKS con nodi.

Importante

È possibile creare un gruppo di nodi gestiti con una delle seguenti opzioni:

eksctl

Crea un gruppo di nodi gestiti con eksctl

Questa procedura richiede eksctl versione 0.204.0 o successiva. Puoi verificare la versione con il comando seguente:

eksctl version

Per istruzioni sull'installazione o sull'aggiornamento di eksctl, consulta la sezione Installation nella documentazione di eksctl.

  1. (Facoltativo) Se la policy IAM gestita da Amazoneks_CNI_Policy è associata al ruolo IAM del nodo Amazon EKS, ti consigliamo di assegnarla a un ruolo IAM da associare invece all'account del servizio Kubernetes. aws-node Per ulteriori informazioni, consulta Configurare il plug-in Amazon VPC CNI per utilizzare IRSA.

  2. Creare un gruppo di nodi gestiti con o senza utilizzare un modello di avvio personalizzato. La specifica manuale di un modello di avvio consente una maggiore personalizzazione di un gruppo di nodi. Ad esempio, può consentire l'implementazione di un'AMI personalizzata o la presenza di argomenti sullo script boostrap.sh in un'AMI ottimizzata per Amazon EKS. Per avere un elenco completo di tutte le opzioni e le impostazioni predefinite disponibili, inserisci il comando seguente.

    eksctl create nodegroup --help

    Nel comando seguente, sostituisci my-cluster con il nome del tuo cluster e sostituisci my-mng con il nome del gruppo di nodi. Il nome del gruppo di nodi non può superare i 63 caratteri. Deve iniziare con una lettera o un numero, ma può anche includere trattini e caratteri di sottolineatura.

    Importante

    Se non utilizzi un modello di avvio personalizzato quando crei per la prima volta un gruppo di nodi gestito, non utilizzarne uno in un secondo momento per il gruppo di nodi. Se non hai specificato un modello di avvio personalizzato, il sistema genera automaticamente un modello di lancio che non ti consigliamo di modificare manualmente. La modifica manuale di questo modello di avvio generato in automatico potrebbe causare errori.

Senza un modello di lancio

eksctlcrea un modello di EC2 avvio Amazon predefinito nel tuo account e distribuisce il gruppo di nodi utilizzando un modello di avvio creato in base alle opzioni specificate. Prima di specificare un valore per --node-type, consulta Scegli un tipo di istanza Amazon EC2 node ottimale.

Sostituisci ami-family con una parola chiave consentita. Per ulteriori informazioni, consulta Setting the node AMI Family (Impostazione della famiglia AMI dei nodi) nella documentazione di eksctl. Sostituiscilo my-key con il nome della tua coppia di EC2 chiavi Amazon o della tua chiave pubblica. Questa chiave viene utilizzata per eseguire il SSH nei nodi dopo il loro avvio.

Nota

Per Windows, questo comando non abilita SSH. Al contrario, associa la tua coppia di EC2 chiavi Amazon all'istanza e ti consente di eseguire l'RDP nell'istanza.

Se non disponi già di una coppia di EC2 chiavi Amazon, puoi crearne una in AWS Management Console. Per informazioni su Linux, consulta le coppie di EC2 chiavi Amazon e le istanze Linux nella Amazon EC2 User Guide. Per informazioni su Windows, consulta le coppie di EC2 chiavi Amazon e le istanze Windows nella Amazon EC2 User Guide.

Ti consigliamo di bloccare l'accesso dei Pod a IMDS se sono soddisfatte le seguenti condizioni:

  • Hai intenzione di assegnare ruoli IAM a tutti i tuoi account di servizio Kubernetes in modo che i Pod abbiano solo le autorizzazioni minime di cui hanno bisogno.

  • Nessun pod nel cluster richiede l'accesso al servizio di metadati delle EC2 istanze Amazon (IMDS) per altri motivi, come il recupero della regione corrente. AWS

Per ulteriori informazioni, consulta Limita l'accesso al profilo dell'istanza assegnato al nodo (worker).

Se desideri bloccare l'accesso dei Pod all'IMDS, aggiungi l'opzione al --disable-pod-imds seguente comando.

eksctl create nodegroup \ --cluster my-cluster \ --region region-code \ --name my-mng \ --node-ami-family ami-family \ --node-type m5.large \ --nodes 3 \ --nodes-min 2 \ --nodes-max 4 \ --ssh-access \ --ssh-public-key my-key

Le tue istanze possono facoltativamente assegnare un numero significativamente maggiore di indirizzi IP ai Pod, assegnare indirizzi IP ai Pod di un blocco CIDR diverso da quello dell'istanza ed essere distribuite in un cluster senza accesso a Internet. Per ulteriori informazioni, consultare Assegna più indirizzi IP ai nodi Amazon EKS con prefissi, Distribuisci i pod in sottoreti alternative con reti personalizzate, e Implementa cluster privati con accesso limitato a Internet per ulteriori opzioni da aggiungere al comando precedente.

I gruppi di nodi gestiti calcolano e applicano un singolo valore per il numero massimo di Pod che possono essere eseguiti su ciascun nodo del gruppo di nodi, in base al tipo di istanza. Se crei un gruppo di nodi con diversi tipi di istanze, il valore più piccolo calcolato per tutti i tipi di istanze viene applicato come numero massimo di Pod che possono essere eseguiti su ogni tipo di istanza nel gruppo di nodi. I gruppi di nodi gestiti calcolano il valore utilizzando lo script a cui si fa riferimento nel numero massimo di pod consigliati da Amazon EKS per ogni tipo di istanza Amazon EC2 .

Con un modello di lancio

Il modello di lancio deve già esistere e deve soddisfare i requisiti specificati nelle nozioni di base sulla configurazione del modello di Launch. Consigliamo di bloccare l'accesso dei Pod a IMDS se sono soddisfatte le seguenti condizioni:

  • Hai intenzione di assegnare ruoli IAM a tutti i tuoi account di servizio Kubernetes in modo che i Pod abbiano solo le autorizzazioni minime di cui hanno bisogno.

  • Nessun pod nel cluster richiede l'accesso al servizio di metadati delle EC2 istanze Amazon (IMDS) per altri motivi, come il recupero della regione corrente. AWS

Per ulteriori informazioni, consulta Limita l'accesso al profilo dell'istanza assegnato al nodo (worker).

Se desideri bloccare l'accesso dei Pod all'IMDS, specifica le impostazioni necessarie nel modello di lancio.

  1. Copia i seguenti contenuti sul dispositivo. Sostituisci i example values, quindi esegui il comando modificato per creare il file eks-nodegroup.yaml. Diverse impostazioni specificate durante l'implementazione senza un modello di avvio vengono spostate nel modello di avvio. Se non specifichi aversion, viene utilizzata la versione predefinita del modello.

    cat >eks-nodegroup.yaml <<EOF apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code managedNodeGroups: - name: my-mng launchTemplate: id: lt-id version: "1" EOF

    Per un elenco completo delle impostazioni del file di configurazione eksctl, consulta Schema dei file config nella documentazione di eksctl. Le istanze possono facoltativamente assegnare un numero significativamente maggiore di indirizzi IP ai pod, assegnare indirizzi IP ai pod da un blocco CIDR diverso da quello dell'istanza, utilizzare il containerd runtime ed essere distribuite in un cluster senza accesso a Internet in uscita. Per ulteriori informazioni, consulta Assegna più indirizzi IP ai nodi Amazon EKS con prefissi, Distribuisci i pod in sottoreti alternative con reti personalizzate, Prova la migrazione di Amazon Linux 2 da Docker a containerd, e Implementa cluster privati con accesso limitato a Internet per ulteriori opzioni da aggiungere al file di configurazione.

    Se non hai specificato un ID AMI nel modello di lancio, i gruppi di nodi gestiti calcolano e applicano un singolo valore per il numero massimo di Pod che possono essere eseguiti su ciascun nodo del gruppo di nodi, in base al tipo di istanza. Se crei un gruppo di nodi con diversi tipi di istanze, il valore più piccolo calcolato tra tutti i tipi di istanze viene applicato come numero massimo di Pod che possono essere eseguiti su ogni tipo di istanza nel gruppo di nodi. I gruppi di nodi gestiti calcolano il valore utilizzando lo script a cui si fa riferimento nel numero massimo di pod consigliati da Amazon EKS per ogni tipo di istanza Amazon EC2 .

    Se hai specificato un ID AMI nel modello di lancio, specifica il numero massimo di Pod che possono essere eseguiti su ciascun nodo del gruppo di nodi se utilizzi una rete personalizzata o desideri aumentare il numero di indirizzi IP assegnati alla tua istanza. Per ulteriori informazioni, consulta Amazon EKS ha consigliato il numero massimo di pod per ogni tipo di EC2 istanza Amazon.

  2. Implementare il gruppo di nodi mediante il comando seguente.

    eksctl create nodegroup --config-file eks-nodegroup.yaml

AWS Management Console

Crea un gruppo di nodi gestito utilizzando AWS Management Console

  1. Attendi che lo stato del cluster risulti ACTIVE. Non è possibile creare un gruppo di nodi gestiti per un cluster che non lo sia giàACTIVE.

  2. Aprire la Console Amazon EKS.

  3. Scegli il nome del cluster in cui desideri creare un gruppo di nodi gestiti.

  4. Seleziona la scheda Compute (Calcolo).

  5. Scegli Add node group (Aggiungi gruppo di nodi).

  6. Nella pagina Configura il gruppo di nodi, compila i parametri di conseguenza e quindi scegli Successivo.

    • Nome: inserisci un nome univoco per il gruppo di nodi gestiti. Il nome del gruppo di nodi non può superare i 63 caratteri. Deve iniziare con una lettera o un numero, ma può anche includere trattini e caratteri di sottolineatura.

    • Ruolo IAM del nodo: scegli il ruolo dell'istanza del nodo da utilizzare con il gruppo di nodi. Per ulteriori informazioni, consulta Ruolo IAM del nodo Amazon EKS.

    Importante
    • Non è possibile utilizzare lo stesso ruolo utilizzato per creare alcun cluster.

    • Ti consigliamo di utilizzare un ruolo che non è attualmente utilizzato da nessun gruppo di nodi autogestito. In caso contrario, prevedi l'utilizzo di un nuovo gruppo di nodi autogestiti. Per ulteriori informazioni, consulta Eliminare un gruppo di nodi gestito dal cluster.

  7. Nella pagina Imposta configurazione di calcolo e dimensionamento, compila i parametri di conseguenza e quindi scegli Successivo.

    • Tipo di AMI: seleziona un tipo di AMI. Se stai distribuendo istanze Arm, assicurati di rivedere le considerazioni in Arm Amazon Linux ottimizzato per Amazon EKS prima della distribuzione. AMIs

      Se hai specificato un modello di avvio nella pagina precedente e hai specificato un AMI nel modello di avvio, non puoi selezionare un valore. Viene visualizzato il valore del modello. L'AMI specificato nel modello deve soddisfare i requisiti in Specificare un AMI.

    • Tipo di capacità: seleziona un tipo di capacità. Per ulteriori informazioni sulla scelta di un tipo di capacità, consulta Tipi di capacità del gruppo di nodi gestiti. Non è possibile combinare diversi tipi di capacità all'interno dello stesso gruppo di nodi. Se desideri utilizzare entrambi i tipi di capacità, crea gruppi di nodi separati, ognuno con i propri tipi di capacità e istanza. Crea un gruppo di nodi gestito con Capacity Blocks for MLPer informazioni sul provisioning e la scalabilità dei nodi di lavoro accelerati da GPU, consulta.

    • Tipi di istanza: per impostazione predefinita, viene specificato uno o più tipi di istanza. Per rimuovere un tipo di istanza predefinito, seleziona il X sul lato destro del tipo di istanza. Scegli il tipo di istanza da utilizzare nel gruppo di nodi gestiti. Per ulteriori informazioni, consulta Scegli un tipo di istanza Amazon EC2 node ottimale.

      Nella console viene visualizzato un insieme di tipi di istanza di uso comune. Se devi creare un gruppo di nodi gestito con un tipo di istanza che non viene visualizzatoeksctl, usa la AWS CLI o un SDK per creare il gruppo di nodi. AWS CloudFormation Se hai specificato un modello di lancio nella pagina precedente, non puoi selezionare un valore perché il tipo di istanza deve essere specificato nel modello di avvio. Viene visualizzato il valore del modello di avvio. Se è stato selezionato Spot per Tipo capacità, al fine di migliorare la disponibilità è consigliabile specificare più tipi di istanza.

    • Dimensione del disco: inserisci la dimensione del disco (in GiB) da utilizzare per il volume root del nodo.

      Se hai specificato un modello di lancio nella pagina precedente, non puoi selezionare un valore perché deve essere specificato nel modello di avvio.

    • Dimensione desiderata: specifica il numero corrente di nodi che il gruppo di nodi gestiti deve mantenere all'avvio.

      Nota

      Amazon EKS non incrementa o riduce automaticamente il gruppo di nodi. Tuttavia, puoi configurare Kubernetes Cluster Autoscaler per farlo al posto tuo. Per ulteriori informazioni, consulta Cluster Autoscaler on. AWS

    • Dimensione minima: specifica il numero minimo di nodi a cui il gruppo di nodi gestiti può essere ridotto.

    • Dimensione massima: specifica il numero massimo di nodi a cui il gruppo di nodi gestiti può essere aumentato.

    • Configurazione dell'aggiornamento dei gruppi di nodi: (facoltativo) puoi selezionare il numero o la percentuale di nodi da aggiornare in parallelo. Questi nodi non saranno disponibili durante l'aggiornamento. Per Numero massimo non disponibile, seleziona una delle seguenti opzioni e specifica un Valore:

      • Numero: seleziona e specifica il numero di nodi nel gruppo nodi che possono essere aggiornati in parallelo.

      • Percentuale: seleziona e specifica la percentuale di nodi nel gruppo di nodi che possono essere aggiornati in parallelo. Questa funzione è utile se disponi di un numero elevato di nodi nel gruppo di nodi.

    • Configurazione di riparazione automatica del nodo: (facoltativo) Se attivi la casella di controllo Abilita riparazione automatica del nodo, Amazon EKS sostituirà automaticamente i nodi quando si verificano problemi rilevati. Per ulteriori informazioni, consulta Abilita la riparazione automatica del nodo e analizza i problemi di salute del nodo.

  8. Nella pagina Specifica reti, compila i parametri opportunamente, quindi scegli Successivo.

    • Sottoreti: sceglii le sottoreti in cui avviare i nodi gestiti.

      Importante

      Se esegui un'applicazione stateful su più zone di disponibilità supportata da volumi Amazon EBS e utilizzi Kubernetes Cluster Autoscaler, devi configurare più gruppi di nodi, ciascuno con ambito di una singola zona di disponibilità. Inoltre, è necessario abilitare la funzionalità --balance-similar-node-groups.

      Importante
      • Se si sceglie una sottorete pubblica e nel cluster è abilitato solo l'endpoint del server API pubblico, è necessario che la sottorete disponga di MapPublicIPOnLaunch impostato su true per consentire alle istanze di unirsi correttamente a un cluster. Se la sottorete è stata creata utilizzando eksctl o i AWS CloudFormation modelli forniti da Amazon EKS a partire dal 26 marzo 2020, allora questa impostazione è già impostata su. true Se le sottoreti sono state create con eksctl o i AWS CloudFormation modelli prima del 26 marzo 2020, devi modificare l'impostazione manualmente. Per ulteriori informazioni, vedere Modifica dell'attributo di IPv4 indirizzamento pubblico per la sottorete.

      • Se utilizzi un modello di avvio e specifichi più interfacce di rete, Amazon EC2 non assegnerà automaticamente un IPv4 indirizzo pubblico, anche se MapPublicIpOnLaunch è impostato su. true Affinché i nodi si uniscano al cluster in questo scenario, è necessario abilitare l'endpoint del server API privato del cluster o avviare i nodi in una sottorete privata con accesso a Internet in uscita fornito tramite un metodo alternativo, come un gateway NAT. Per ulteriori informazioni, consulta la sezione Indirizzamento IP delle EC2 istanze Amazon nella Amazon EC2 User Guide.

    • Configurazione dell'accesso SSH ai nodi (facoltativo). L'abilitazione di SSH consente di connettersi alle istanze e raccogliere informazioni diagnostiche in caso di problemi. Consigliamo vivamente di abilitare l'accesso remoto quando crei un gruppo di nodi. Non puoi abilitare l'accesso remoto dopo la creazione del gruppo di nodi.

      Se hai scelto di utilizzare un modello di lancio, questa opzione non viene mostrata. Per abilitare l'accesso remoto ai nodi, specifica una coppia di chiavi nel modello di avvio e assicurati che la porta appropriata sia aperta ai nodi nei gruppi di sicurezza specificati nel modello di avvio. Per ulteriori informazioni, consulta Utilizzo di gruppi di sicurezza personalizzati.

      Nota

      Per Windows, questo comando non abilita SSH. Al contrario, associa la tua coppia di EC2 chiavi Amazon all'istanza e ti consente di eseguire l'RDP nell'istanza.

    • Per la coppia di chiavi SSH (opzionale), scegli una chiave Amazon EC2 SSH da utilizzare. Per informazioni su Linux, consulta le coppie di EC2 chiavi Amazon e le istanze Linux nella Amazon EC2 User Guide. Per informazioni su Windows, consulta le coppie di EC2 chiavi Amazon e le istanze Windows nella Amazon EC2 User Guide. Se hai scelto di utilizzare un modello di lancio, non puoi selezionarne uno. Quando viene fornita una chiave Amazon EC2 SSH per i gruppi di nodi che utilizzano Bottlerocket AMIs, viene abilitato anche il contenitore amministrativo. Per ulteriori informazioni, consulta Container amministratore su GitHub.

    • Per Autorizzazione di accesso remoto SSH da, se desideri limitare l'accesso a istanze specifiche, seleziona i gruppi di sicurezza associati a tali istanze. Se non selezioni gruppi di sicurezza specifici, l'accesso SSH è consentito da qualsiasi punto di Internet (). 0.0.0.0/0

  9. Nella pagina Rivedi e crea, controlla la configurazione del gruppo di nodi gestiti e scegli Crea.

    Se i nodi non riescono a unirsi al cluster, consulta il Impossibile aggiungere i nodi al cluster capitolo Risoluzione dei problemi.

  10. Guarda lo stato dei nodi e attendi che raggiungano lo stato Ready.

    kubectl get nodes --watch
  11. (Solo nodi GPU) Se hai scelto un tipo di istanza GPU e un'AMI accelerata ottimizzata per Amazon EKS, devi applicare il plug-in del dispositivo NVIDIA per Kubernetes sul tuo cluster. DaemonSet Sostituiscilo vX.X.X con la versione di s-device-pluginNVIDIA/K8 desiderata prima di eseguire il comando seguente.

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/vX.X.X/deployments/static/nvidia-device-plugin.yml

Installa i componenti aggiuntivi di Kubernetes

Ora che disponi di un cluster Amazon EKS funzionante con nodi, sei pronto per iniziare a installare componenti aggiuntivi Kubernetes e distribuire applicazioni nel tuo cluster. I seguenti argomenti della documentazione consentono di estendere la funzionalità del cluster.