Esegui la migrazione da a dockershimcontainerd - Amazon EKS

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 dockershimcontainerd

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 on the KubernetesBlog.

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 () DDS su. GitHub Amazon EKS AMIs che eseguono Kubernetes versioni precedenti a quelle 1.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à. containerdaiuta a ridurre al minimo il numero di EKS AMI release di Amazon necessarie per risolvere le vulnerabilità e le esposizioni dockershim comuni (). CVEs Dal momento che dockershim 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, consulta dockerd 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 immagini kubelet nella documentazione di Kubernetes.

  • Poiché Amazon EKS 1.24 non supporta piùDocker, alcuni flag precedentemente supportati dallo script di EKS bootstrap di Amazon non 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 del containerd 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 EKS1.24, devi assicurarti che l'inoltro IP sia abilitato per i tuoi nodi di lavoro. Questa impostazione non era necessaria con Docker ma è necessaria per containerd. È 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 kernel net.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, consulta install-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 my-nodegroup.yaml con i seguenti contenuti. Sostituisci ogni example value 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 perami-1234567890abcdef0, consultaRecupera Amazon Linux consigliato AMI IDs.

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.sh my-cluster --container-runtime containerd
Nota

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

Se 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.sh su GitHub.

/etc/eks/bootstrap.sh my-cluster --container-runtime containerd