Aggiornare uno AWS CloudFormation stack di nodi - 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à.

Aggiornare uno AWS CloudFormation stack di nodi

Questo argomento descrive come aggiornare uno stack di nodi AWS CloudFormation autogestito esistente con una nuova AMI. È possibile utilizzare questa procedura per aggiornare i nodi a una nuova versione di Kubernetes in seguito all'aggiornamento di un cluster. In caso contrario, è possibile eseguire l'aggiornamento all'AMI ottimizzata per Amazon EKS più recente per una versione Kubernetes esistente.

Importante

In questo argomento vengono descritti gli aggiornamenti dei nodi per i gruppi di nodi autogestiti. Per informazioni sull'utilizzo di Simplify node lifecycle con gruppi di nodi gestiti, consulta. Aggiorna un gruppo di nodi gestiti per il tuo cluster

L'ultimo AWS CloudFormation modello di nodo Amazon EKS predefinito è configurato per avviare un'istanza con la nuova AMI nel cluster prima di rimuoverne una vecchia, una alla volta. Questa configurazione assicura di avere sempre a disposizione il numero di istanze attive desiderato dal gruppo Auto Scaling nel cluster durante l'aggiornamento continuo.

Nota

Questo metodo non è supportato per i gruppi di nodi creati con. eksctl Se è stato creato il cluster o il gruppo di nodi con eksctl, consultare Migrazione delle applicazioni in un nuovo gruppo di nodi.

  1. Determinare il provider DNS del cluster.

    kubectl get deployments -l k8s-app=kube-dns -n kube-system

    Di seguito viene riportato un output di esempio: Questo cluster utilizza CoredNS per la risoluzione DNS, ma il tuo cluster potrebbe invece tornare. kube-dns L'output potrebbe avere un aspetto diverso a seconda della versione kubectl che stai utilizzando.

    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE coredns 1 1 1 1 31m
  2. Se l'implementazione corrente è in esecuzione per un numero di volte inferiore a 2 repliche, scalare la distribuzione a 2 repliche. Sostituire coredns con kube-dns se l'output del comando precedente ha avuto tale risultato.

    kubectl scale deployments/coredns --replicas=2 -n kube-system
  3. (Facoltativo) Se utilizzi Kubernetes Cluster Autoscaler, ridimensiona la distribuzione fino a zero (0) repliche per evitare azioni di scalabilità contrastanti.

    kubectl scale deployments/cluster-autoscaler --replicas=0 -n kube-system
  4. Determina il tipo di istanza e il numero di istanze desiderato del gruppo di nodi corrente. Questi valori vengono inseriti in un secondo momento, quando si aggiorna il AWS CloudFormation modello per il gruppo.

    1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

    2. Nel pannello di navigazione a sinistra, scegli Launch Configurations (Configurazioni di avvio) e prendi nota del tipo di istanza per la configurazione di avvio del nodo esistente.

    3. Nel pannello di navigazione a sinistra, scegli Auto Scaling Groups (Gruppi Auto Scaling) e prendi nota del conteggio delle istanze Desired (Desiderato) per il gruppo Auto Scaling del nodo.

  5. Apri la AWS CloudFormation console.

  6. Selezionare la pila del gruppo di nodi, quindi scegliere Aggiorna.

  7. Selezionare Replace current template (Sostituisci modello corrente) e scegliere Amazon S3 URL (URL Amazon S3).

  8. Per l'URL di Amazon S3, incolla il seguente URL nell'area di testo per assicurarti di utilizzare la versione più recente del modello di nodo AWS CloudFormation . Quindi scegliere Next (Successivo):

    https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2022-12-23/amazon-eks-nodegroup.yaml
  9. Nella pagina Specify stack details (Specifica dettagli pila), compilare i parametri seguenti e scegliere Next (Successivo):

    • NodeAutoScalingGroupDesiredCapacity— Inserisci il numero di istanze desiderato che hai registrato nel passaggio precedente. In alternativa, inserire il nuovo numero desiderato di nodi come riferimento del dimensionamento quando viene aggiornata la pila.

    • NodeAutoScalingGroupMaxSize— Inserisci il numero massimo di nodi a cui il gruppo Auto Scaling del nodo può scalare orizzontalmente. Questo valore deve essere almeno un nodo in più rispetto alla capacità desiderata. Ciò consente di eseguire un aggiornamento in sequenza dei nodi senza ridurre il numero di nodi durante l'aggiornamento.

    • NodeInstanceType— Scegli il tipo di istanza registrato nel passaggio precedente. In alternativa, scegliere un tipo di istanza diverso per i nodi. Prima di scegliere un tipo di istanza diverso, consulta Scegli un tipo di istanza Amazon EC2 node ottimale. Ogni tipo di EC2 istanza Amazon supporta un numero massimo di interfacce di rete elastiche (interfaccia di rete) e ogni interfaccia di rete supporta un numero massimo di indirizzi IP. Poiché a ogni nodo di lavoro e Pod viene assegnato il proprio indirizzo IP, è importante scegliere un tipo di istanza che supporti il numero massimo di Pod che desideri eseguire su ciascun EC2 nodo Amazon. Per un elenco del numero di interfacce di rete e di indirizzi IP supportati dai tipi di istanza, consulta Indirizzi IP per interfaccia di rete e per tipo di istanza. Ad esempio, il tipo di m5.large istanza supporta un massimo di 30 indirizzi IP per il nodo di lavoro e i pod.

      Nota

      I tipi di istanza supportati per la versione più recente del plug-in CNI di Amazon VPC per Kubernetes sono riportati in vpc_ip_resource_limit.go su GitHub. Potrebbe essere necessario aggiornare il plug-in Amazon VPC CNI per la versione Kubernetes per utilizzare i più recenti tipi di istanze supportati. Per ulteriori informazioni, consulta Assegna IPs ai pod con Amazon VPC CNI.

      Importante

      Alcuni tipi di istanze potrebbero non essere disponibili in tutte le regioni. AWS

    • NodeImageIdSSMParam— Il parametro Amazon EC2 Systems Manager dell'ID AMI a cui desideri eseguire l'aggiornamento. Il seguente valore utilizza l'ultima versione dell'AMI ottimizzata per Amazon EKS per Kubernetes. 1.32

      /aws/service/eks/optimized-ami/1.32/amazon-linux-2/recommended/image_id

      Puoi sostituirlo 1.32 con una versione di Kubernetes supportata che sia la stessa. In alternativa, può essere fino a una versione precedente alla versione di Kubernetes in esecuzione sul piano di controllo. Si consiglia di mantenere i nodi alla stessa versione del piano di controllo. Puoi anche sostituirlo amazon-linux-2 con un altro tipo di AMI. Per ulteriori informazioni, consulta Recupera le AMI Amazon Linux consigliate IDs.

      Nota

      L'utilizzo del parametro Amazon EC2 Systems Manager consente di aggiornare i nodi in futuro senza dover cercare e specificare un ID AMI. Se lo AWS CloudFormation stack utilizza questo valore, qualsiasi aggiornamento dello stack avvia sempre l'ultima AMI ottimizzata Amazon EKS consigliata per la versione di Kubernetes specificata. Questo vale anche se non modifichi alcun valore nel modello.

    • NodeImageId— Per utilizzare la tua AMI personalizzata, inserisci l'ID dell'AMI da utilizzare.

      Importante

      Questo valore sostituisce qualsiasi valore specificato per. NodeImageIdSSMParam Se desideri utilizzare il NodeImageIdSSMParamvalore, assicurati che il valore per NodeImageIdsia vuoto.

    • Disabilita IMDSv1: per impostazione predefinita, ogni nodo supporta Instance Metadata Service versione 1 (IMDSv1) e IMDSv2. Tuttavia, è possibile disabilitare IMDSv1. Seleziona true se non desideri utilizzare IMDSv1 alcun nodo o pod programmato nel gruppo di nodi. Per ulteriori informazioni su IMDS, consulta Configurazione del servizio di metadati dell'istanza. Se hai implementato i ruoli IAM per gli account di servizio, assegna le autorizzazioni necessarie direttamente a tutti i Pod che richiedono l'accesso ai servizi. AWS In questo modo, nessun Pod del cluster richiede l'accesso a IMDS per altri motivi, come il recupero della regione corrente. AWS Quindi, puoi anche disabilitare l'accesso ai Pod che non utilizzano IMDSv2 la rete host. Per ulteriori informazioni, consulta Limita l'accesso al profilo di istanza assegnato al nodo (worker).

  10. (Facoltativo) Nella pagina Options (Opzioni), contrassegna con dei tag le risorse della pila. Scegli Next (Successivo).

  11. Nella pagina Verifica, esaminare le informazioni, confermare che la pila è in grado di creare risorse IAM, quindi scegliere Aggiorna pila.

    Nota

    L'aggiornamento di ogni nodo nel cluster richiede diversi minuti. Attendi il completamento dell'aggiornamento di tutti i nodi prima di eseguire la procedura successiva.

  12. Se il provider DNS del cluster lo èkube-dns, ridimensiona la kube-dns distribuzione fino a una sola replica.

    kubectl scale deployments/kube-dns --replicas=1 -n kube-system
  13. (Facoltativo) Se si sta utilizzando il Cluster Autoscaler Kubernetes, dimensionare l'implementazione al numero di repliche desiderato.

    kubectl scale deployments/cluster-autoscaler --replicas=1 -n kube-system
  14. (Facoltativo) Verifica di utilizzare la versione più recente del plug-in Amazon VPC CNI per Kubernetes. Potrebbe essere necessario aggiornare il plug-in Amazon VPC CNI per la versione Kubernetes per utilizzare i più recenti tipi di istanze supportati. Per ulteriori informazioni, consulta Assegna IPs ai pod con Amazon VPC CNI.