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.
Aggiornamento da Amazon Linux 2 ad Amazon Linux 2023
Le AMI ottimizzate per Amazon EKS sono disponibili in due famiglie basate su AL2 e AL2023. AL2023 è un nuovo sistema operativo basato su Linux progettato per offrire un ambiente sicuro, stabile e ad alte prestazioni per le 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 ad AL2. Per un confronto completo, consulta Comparing AL2 and Amazon Linux 2023 nella Guida per l’utente di Amazon Linux 2023. Diversi pacchetti sono stati aggiunti, aggiornati e rimossi da AL2. Si consiglia vivamente di testare le applicazioni con AL2023 prima dell’aggiornamento. Per un elenco di tutte le modifiche ai pacchetti in AL2023, consulta Package changes 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
nodeadmche 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 esempiodei parametri minimi richiesti è come segue, dove ora apiServerEndpoint,certificateAuthoritye il serviziocidrsono richiesti:--- apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: my-cluster apiServerEndpoint: https://example.com certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk= cidr: 10.100.0.0/16In AL2, i metadati di questi parametri sono stati rilevati dalla chiamata
DescribeClusterAPI di Amazon EKS. Con AL2023, questo comportamento è cambiato poiché la chiamata API aggiuntiva rischia una limitazione (della larghezza di banda della rete) durante gli aumenti verticali su larga scala dei nodi. Questa modifica non ha effetto se utilizzi gruppi di nodi gestiti senza un modello di avvio o se utilizzi Karpenter. Per ulteriori informazioni sucertificateAuthoritye sul serviziocidr, consultaDescribeClusternel Riferimento di API Amazon EKS. -
Per AL2023,
nodeadmmodifica anche il formato per applicare i parametri akubeletper ogni nodo che utilizzaNodeConfigSpec. In AL2, ciò è stato fatto con il parametro --kubelet-extra-args. Questo è usato comunemente per aggiungere etichette e taint ai nodi. L’esempio seguente mostra l’applicazione dimaxPodse--node-labelsal 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 -
Per AL2023 è richiesta la versione del CNI di Amazon VPC
1.16.2o superiore. -
AL2023 richiede
IMDSv2per impostazione 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 daIMDSv1aIMDSv2, consulta Transition to using Instance Metadata Service Version 2 e Get the full benefits of IMDSv2 and disable IMDSv1 across your AWS infrastructure. Se desideri usare IMDSv1, puoi farlo comunque sovrascrivendo manualmente le impostazioni usando le proprietà di avvio dell’opzione dei metadati di istanza.Nota
Per
IMDSv2con 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 su2. Puoi sostituire manualmenteHttpPutResponseHopLimitnel 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 di container e da parte disystemd. Sebbene AL2023 contenga ancora codice che consentirebbe il funzionamento del sistema concgroupv1, si tratta di una configurazione sconsigliata o non supportata. Questa configurazione verrà completamente rimossa in una delle future release principali di Amazon Linux. -
eksctlversione0.176.0o successiva è richiesta affinchéeksctlsupporti AL2023.
Per i gruppi di nodi gestiti esistenti in precedenza, puoi eseguire un aggiornamento sul posto o un aggiornamento blu/verde a seconda della modalità di utilizzo del modello di avvio:
-
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. Devi assicurarti che le applicazioni e tutti i dati utente vengano trasferiti ad AL2023 prima di eseguire questa strategia di aggiornamento.
-
Se utilizzi gruppi di nodi gestiti con il modello di avvio standard o con uno personalizzato che non specifica l’ID AMI, devi eseguire l’aggiornamento utilizzando una strategia blu/verde. Un aggiornamento blu/verde è in genere più complesso e comporta la creazione di un gruppo di nodi completamente nuovo in cui devi specificare AL2023 come tipo AMI. Il nuovo gruppo di nodi dovrà quindi essere configurato con cura per garantire che tutti i dati personalizzati del gruppo di nodi AL2 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 utilizzare AL2023, dovrai modificare il campo EC2NodeClass amiFamily 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.