Aggiornamento da Amazon Linux 2 ad Amazon Linux 2023 - 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 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à.

Aggiornamento da Amazon Linux 2 ad Amazon Linux 2023

avvertimento

Amazon EKS ha smesso di pubblicare Amazon Linux 2 (AL2) ottimizzato per EKS il 26 AMIs novembre 2025. AL2023 e Bottlerocket based for AMIs Amazon EKS sono disponibili per tutte le versioni di Kubernetes supportate, inclusa la 1.33 e successive.

AL2023 è un sistema operativo basato su Linux progettato per fornire un ambiente sicuro, stabile e ad alte prestazioni per le tue applicazioni cloud. È la nuova generazione di Amazon Linux offerta da Amazon Web Services ed è disponibile in tutte le versioni di Amazon EKS supportate.

AL2023 offre diversi miglioramenti rispetto a. AL2 Per un confronto completo, consulta AL2 Comparating and Amazon Linux 2023 nella Amazon Linux 2023 User Guide. Sono stati aggiunti, aggiornati e rimossi diversi pacchetti da AL2. Si consiglia vivamente di testare le applicazioni AL2023 prima dell'aggiornamento. Per un elenco di tutte le modifiche ai pacchetti in AL2023, consulta Modifiche ai pacchetti in Amazon Linux 2023 nelle Note di rilascio di Amazon Linux 2023.

Oltre a queste modifiche, devi tenere presente quanto riportato di seguito:

  • AL2023 introduce un nuovo processo di inizializzazione dei nodi nodeadm che utilizza uno schema di configurazione YAML. Se utilizzi gruppi di nodi autogestiti o un’AMI con un modello di avvio, ora dovrai fornire esplicitamente metadati del cluster aggiuntivi quando si crea un nuovo gruppo di nodi. Un esempio dei parametri minimi richiesti è come segue, dove ora apiServerEndpoint, certificateAuthority e il servizio cidr sono richiesti:

    --- apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: my-cluster apiServerEndpoint: https://example.com certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk= cidr: 10.100.0.0/16

    Nel AL2, i metadati di questi parametri sono stati scoperti dalla chiamata DescribeCluster API di Amazon EKS. Nel frattempo AL2023, questo comportamento è cambiato poiché la chiamata API aggiuntiva rischia di rallentare durante l'up-up di nodi su larga scala. Questa modifica non ha effetto su di te se utilizzi gruppi di nodi gestiti senza un modello di avvio o se utilizzi Karpenter. Per ulteriori informazioni su certificateAuthority e sul servizio cidr, consulta DescribeCluster nel Riferimento di API Amazon EKS.

  • Infatti AL2023, modifica nodeadm anche il formato in cui applicare i parametri a kubelet per ogni nodo utilizzato. NodeConfigSpec Nel AL2, ciò è stato fatto con il --kubelet-extra-args parametro. Questo è usato comunemente per aggiungere etichette e taint ai nodi. L’esempio seguente mostra l’applicazione di maxPods e --node-labels al nodo.

    --- apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: test-cluster apiServerEndpoint: https://example.com certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk= cidr: 10.100.0.0/16 kubelet: config: maxPods: 110 flags: - --node-labels=karpenter.sh/capacity-type=on-demand,karpenter.sh/nodepool=test
  • È richiesta la versione CNI di Amazon VPC 1.16.2 o superiore. AL2023

  • AL2023 richiede per impostazione IMDSv2 predefinita. IMDSv2presenta diversi vantaggi che aiutano a migliorare il livello di sicurezza. Usa un metodo di autenticazione orientato alla sessione che prevede la creazione di un token segreto in una semplice richiesta HTTP PUT per avviare la sessione. Il token di una sessione può avere una validità compresa tra 1 secondo e 6 ore. Per ulteriori informazioni su come passare da IMDSv1 aIMDSv2, consulta Transizione all'utilizzo di Instance Metadata Service versione 2 e Ottieni IMDSv1 tutti i vantaggi IMDSv2 e disabilita l'intera infrastruttura AWS. Se desideri usare IMDSv1, puoi farlo comunque sovrascrivendo manualmente le impostazioni usando le proprietà di avvio dell’opzione dei metadati di istanza.

    Nota

    Ad IMDSv2 esempio AL2023, il numero di hop predefinito per i gruppi di nodi gestiti può variare:

    • Quando non si utilizza un modello di avvio, il valore predefinito è impostato su 1. Ciò significa che i container non avranno accesso alle credenziali del nodo che usano IMDS. Se necessiti dell’accesso del container alle credenziali del nodo, puoi comunque farlo utilizzando un modello di lancio Amazon EC2 personalizzato.

    • Quando si utilizza un’AMI personalizzata in un modello di avvio, il valore predefinito HttpPutResponseHopLimit è impostato su 2. Puoi sostituire manualmente HttpPutResponseHopLimit nel modello di avvio.

    In alternativa, puoi utilizzare Amazon EKS Pod Identity per fornire credenziali anziché IMDSv2.

  • AL2023 presenta la nuova generazione di gerarchia unificata dei gruppi di controllo ()cgroupv2. cgroupv2viene utilizzato per implementare un runtime del contenitore e da. systemd Sebbene includa AL2023 ancora codice che può far funzionare il sistemacgroupv1, questa non è una configurazione consigliata o supportata. Questa configurazione verrà completamente rimossa in una delle future release principali di Amazon Linux.

  • eksctlper il supporto è richiesta eksctl una versione 0.176.0 o superiore AL2023.

Per i gruppi di nodi gestiti precedentemente esistenti, puoi eseguire un aggiornamento sul posto o un blue/green aggiornamento a seconda di come stai utilizzando un modello di lancio:

  • Se utilizzi un’AMI personalizzata con un gruppo di nodi gestito, puoi eseguire un aggiornamento sul posto scambiando l’ID AMI nel modello di avvio. È necessario assicurarsi che le applicazioni e tutti i dati utente vengano trasferiti a AL2023 First prima di eseguire questa strategia di aggiornamento.

  • Se utilizzi gruppi di nodi gestiti con il modello di avvio standard o con un modello di avvio personalizzato che non specifica l'ID AMI, devi eseguire l'aggiornamento utilizzando una blue/green strategia. Un blue/green aggiornamento è in genere più complesso e comporta la creazione di un gruppo di nodi completamente nuovo in cui specificare AL2023 il tipo di AMI. Il nuovo gruppo di nodi dovrà quindi essere configurato con cura per garantire che tutti i dati personalizzati del gruppo di AL2 nodi siano compatibili con il nuovo sistema operativo. Una volta che il nuovo gruppo di nodi è stato testato e convalidato con le applicazioni, i Pod possono essere migrati dal vecchio gruppo di nodi al nuovo gruppo di nodi. Una volta completata la migrazione, puoi eliminare il vecchio gruppo di nodi.

Se utilizzi Karpenter e desideri utilizzarlo AL2023, dovrai modificare il EC2NodeClass amiFamily campo con. AL2023 Per impostazione predefinita, Drift è abilitato in Karpenter. Ciò significa che una volta modificato il campo amiFamily, Karpenter aggiornerà automaticamente i nodi worker all’AMI più recente, quando disponibile.

Informazioni aggiuntive su nodeadm

Quando utilizzi un'AMI Amazon Linux 2023 ottimizzata per EKS o crei un'AMI Amazon Linux 2023 EKS personalizzata tramite gli script Packer forniti nel repository amazon-eks-ami GitHub ufficiale, dovresti evitare di eseguire esplicitamente nodeadm init all'interno dei dati utente EC2 o come parte della tua AMI personalizzata.

Se desideri generare dati dinamici NodeConfig nei tuoi dati utente, puoi scrivere quella configurazione in un file yaml o json drop-in. /etc/eks/nodeadm.d Questi file di configurazione verranno uniti e applicati al nodo quando nodeadm init verrà avviato automaticamente più avanti nel processo di avvio. Esempio:

cat > /etc/eks/nodeadm.d/additional-node-labels.yaml << EOF apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: kubelet: flags: - --node-labels=foo=bar EOF

Amazon Linux 2023 ottimizzato per EKS esegue AMIs automaticamente nodeadm init in due fasi tramite servizi systemd separati: nodeadm-config viene eseguito prima dell'esecuzione dei dati utente, mentre nodeadm-run viene eseguito dopo. Il servizio nodeadm-config stabilisce le configurazioni di base per containerd e kubelet prima dell'esecuzione dei dati utente. Il servizio nodeadm-run esegue determinati demoni di sistema e completa tutte le configurazioni finali dopo l'esecuzione dei dati dell'utente. Se il comando nodeadm init viene eseguito un'altra volta, tramite dati utente o un'AMI personalizzata, potrebbe violare le ipotesi sull'ordine di esecuzione, portando a risultati imprevisti, tra cui configurazioni errate. ENIs