Aiutaci a migliorare questa pagina
Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.
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à.
Esegui la migrazione da a dockershim
containerd
Kubernetes non supporta più dockershim
. Il team di Kubernetes ha rimosso completamente il runtime nella versione 1.24
di Kubernetes. Per ulteriori informazioni, Kubernetesconsulta Moving on FromDockershim: Commitments and Next Steps
Amazon ha EKS inoltre interrotto il supporto dockershim
a partire dal 1.24
rilascio della Kubernetes versione. Amazon EKS AMIs che vengono pubblicati ufficialmente hanno containerd
come unico runtime che inizia con la versione1.24
. Questo argomento tratta alcuni dettagli, ma ulteriori informazioni sono disponibili in Tutto ciò che devi sapere sul trasferimento ai containerd su Amazon. EKS
Esiste un plug-in kubectl
che puoi utilizzare per visualizzare quali carichi di lavoro Kubernetes montano il volume del socket Docker. Per ulteriori informazioni, consulta Detector for Docker Socket () DDS1.24
utilizzate Docker come runtime predefinito. Tuttavia, questi Amazon EKS AMIs hanno un'opzione bootstrap flag che puoi usare per testare i tuoi carichi di lavoro su qualsiasi cluster supportato utilizzando. containerd
Per ulteriori informazioni, consulta Prova la migrazione ad Amazon Linux 2 da Docker a containerd.
Continueremo a pubblicare AMIs per Kubernetes le versioni esistenti fino alla fine della loro data di supporto. Per ulteriori informazioni, consulta Amazon EKS Kubernetes calendario di rilascio. Se occorre più tempo per testare i carichi di lavoro in containerd
, utilizza una versione supportata anteriore a 1.24
. Tuttavia, quando desideri aggiornare Amazon EKS AMIs ufficiale a una versione 1.24
o successiva, assicurati di verificare che i tuoi carichi di lavoro siano in esecuzione. containerd
Il containerd
runtime offre prestazioni e sicurezza più affidabili. containerd
è il runtime standardizzato su AmazonEKS. Fargate e lo uso Bottlerocket containerd
già. containerd
aiuta a ridurre al minimo il numero di EKS AMI release di Amazon necessarie per risolvere le vulnerabilità e le esposizioni dockershim
comunidockershim
già utilizza containerd
internamente, potrebbe non essere necessario apportare modifiche. che sono richieste, invece, in alcune situazioni:
-
Devi apportare modifiche alle applicazioni che montano il socket Docker. Ad esempio, sono interessate le immagini di container generate con un container. Anche numerosi strumenti di monitoraggio montano il socket Docker. Potrebbe essere necessario attendere aggiornamenti o implementare nuovamente i carichi di lavoro per il monitoraggio del runtime.
-
Potrebbe essere necessario apportare modifiche per le applicazioni che si basano su impostazioni Docker specifiche. Ad esempio, il protocollo
HTTPS_PROXY
non è più supportato. Devi aggiornare le applicazioni che utilizzano questo protocollo. Per ulteriori informazioni, consultadockerd
nella Documentazione di Docker. -
Se utilizzi Amazon ECR Credential Helper per estrarre immagini, devi passare al provider di credenziali di
kubelet
immagine. Per ulteriori informazioni, consulta Configurare un provider di credenziali per immaginikubelet
nella documentazione di Kubernetes. -
Poiché Amazon EKS
1.24
non supporta piùDocker, alcuni flag precedentemente supportati dallo script di EKS bootstrap di Amazonnon sono più supportati. Prima di passare ad Amazon EKS 1.24
o successivamente, devi rimuovere qualsiasi riferimento ai flag che ora non sono supportati:-
--container-runtime dockerd
(containerd
è l'unico valore supportato) -
--enable-docker-bridge
-
--docker-config-json
-
-
Se hai già configurato Fluentd per Container Insights, devi eseguire la migrazione di Fluentd a Fluent Bit prima di passare a
containerd
. I Fluentd parser sono configurati per analizzare solo i messaggi di log in formato. JSON Al contrariodockerd
, il runtime delcontainerd
contenitore contiene messaggi di registro che non sono in JSON formato. Se non esegui la migrazione a Fluent Bit, alcuni dei parser Fluentd's configurati genereranno un'enorme quantità di errori all'interno del container Fluentd. Per ulteriori informazioni sulla migrazione, consulta Configurare Fluent Bit come invio DaemonSet di log a Logs. CloudWatch -
Se utilizzi una soluzione personalizzata AMI e stai effettuando l'aggiornamento ad Amazon EKS
1.24
, devi assicurarti che l'inoltro IP sia abilitato per i tuoi nodi di lavoro. Questa impostazione non era necessaria con Docker ma è necessaria percontainerd
. È necessario per risolvere i problemi di connettività di rete Pod-to-Pod, da Pod verso l'esterno oppure Pod-to-apiserver.Per verificare questa impostazione su un nodo worker, esegui uno dei seguenti comandi:
-
sysctl net.ipv4.ip_forward
-
cat /proc/sys/net/ipv4/ip_forward
Se l'output è
0
, esegui uno dei seguenti comandi per attivare la variabile kernelnet.ipv4.ip_forward
:-
sysctl -w net.ipv4.ip_forward=1
-
echo 1 > /proc/sys/net/ipv4/ip_forward
Per l'attivazione dell'impostazione su Amazon EKS AMIs in
containerd
fase di esecuzione, consultainstall-worker.sh
suGitHub. -
Prova la migrazione ad Amazon Linux 2 da Docker a containerd
Per la Kubernetes versione1.23
, puoi utilizzare un flag bootstrap opzionale per abilitare il containerd
runtime EKS ottimizzato AL2 AMIs per Amazon. Questa funzione fornisce un percorso chiaro per la migrazione a containerd
quando viene eseguito l'aggiornamento alla versione 1.24
o successiva. Amazon EKS ha interrotto il supporto Docker a partire dal 1.24
lancio della Kubernetes versione. Il containerd
runtime è ampiamente adottato nella Kubernetes comunità ed è un progetto graduale conCNCF. È possibile testarlo aggiungendo un gruppo di nodi a un cluster nuovo o esistente.
Creando uno tra i seguenti tipi di gruppi di nodi, è possibile abilitare il flag di bootstrap.
- Autogestito
-
Crea il gruppo di nodi utilizzando le istruzioni riportate in Crea nodi Amazon Linux autogestiti. Specificate un Amazon EKS ottimizzato AMI e il seguente testo per il
BootstrapArguments
parametro.--container-runtime containerd
- Gestiti
-
Se si utilizza
eksctl
, è necessario creare un file denominato
con i seguenti contenuti. Sostituisci ognimy-nodegroup
.yaml
con i valori in tuo possesso. Il nome del gruppo di nodi non può contenere più di 63 caratteri. Deve iniziare con una lettera o un numero, ma può anche includere trattini e caratteri di sottolineatura. Per recuperare un AMI ID ottimizzato perexample value
ami-
, consultaRecupera Amazon Linux consigliato AMI IDs.1234567890abcdef0
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name:
my-cluster
region:region-code
version:1.23
managedNodeGroups: - name:my-nodegroup
ami: ami-1234567890abcdef0
overrideBootstrapCommand: | #!/bin/bash /etc/eks/bootstrap.shmy-cluster
--container-runtime containerdNota
Se si avviano più nodi contemporaneamente, potrebbe essere necessario specificare anche i valori per gli argomenti di bootstrap
--apiserver-endpoint
,--b64-cluster-ca
e--dns-cluster-ip
, al fine di evitare errori. Per ulteriori informazioni, consulta Specificare un AMI.Esegui i seguenti comandi per creare il gruppo di nodi.
eksctl create nodegroup -f
my-nodegroup
.yamlSe si preferisce utilizzare uno strumento diverso per creare il gruppo di nodi gestiti, è necessario implementare il gruppo di nodi utilizzando un modello di avvio. Nel modello di lancio, specifica un AMIID EKS ottimizzato per Amazon, quindi distribuisci il gruppo di nodi utilizzando un modello di avvio e fornisci i seguenti dati utente. Questi dati utente passano argomenti nel file
bootstrap.sh
. Per ulteriori informazioni sul file bootstrap, consulta bootstrap.shsu GitHub. /etc/eks/bootstrap.sh
my-cluster
--container-runtime containerd