Migrazione da a dockershimcontainerd - 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à.

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

Migrazione da a dockershimcontainerd

Kubernetes non supporta piùdockershim. Il Kubernetes il team ha rimosso il runtime in Kubernetes versione1.24. Per ulteriori informazioni, consulta Kubernetes is Moving On From Dockershim: Impegni e fasi successive sul Kubernetes Blog.

Amazon ha EKS inoltre interrotto il supporto per dockershim iniziare con Kubernetes 1.24rilascio della 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

C'è un kubectl plugin che puoi usare per vedere quali dei tuoi Kubernetes i carichi di lavoro montano il Docker volume del socket. Per ulteriori informazioni, vedete Detector for Docker Socket () DDS su GitHub. Amazon EKS AMIs che funziona Kubernetes versioni precedenti all'1.24uso 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 quelli esistenti AMIs Kubernetes versioni fino alla fine della 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 ufficiale EKS AMIs alla versione ufficiale 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 Bottlerocket già in uso containerd solo. 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:

  • È necessario apportare modifiche alle applicazioni che montano il Docker presa. Ad esempio, sono interessate le immagini di container generate con un container. Molti strumenti di monitoraggio montano anche il Docker presa. 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 dipendono da specifiche Docker impostazioni. Ad esempio, il protocollo HTTPS_PROXY non è più supportato. Devi aggiornare le applicazioni che utilizzano questo protocollo. Per ulteriori informazioni, consulta dockerd nel Docker Documentazione.

  • 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 di immagine kubelet nel Kubernetes documentazione.

  • Perché Amazon EKS 1.24 non supporta più Docker, alcuni flag che lo script di EKS bootstrap di Amazon supportava in precedenza 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 lo hai già fatto Fluentd configurato per Container Insights, quindi è necessario migrare Fluentd in Fluent Bit prima di passare a. containerd Il Fluentd i parser sono configurati per analizzare solo i messaggi di registro in JSON formato. 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 configurati Fluentd’s i parser genereranno una quantità enorme di errori all'interno di Fluentd contenitore. Per ulteriori informazioni sulla migrazione, consulta Configurare Fluent Bit DaemonSet per inviare i log ai log. 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 è richiesta percontainerd. È necessario per risolvere i problemi Pod-per-Pod, Pod-esterno, oppure Pod-a-apiserver connettività di rete.

    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 per Amazon Linux 2 in containerd fase di esecuzione, install-worker.sh consulta GitHub.

Prova la migrazione ad Amazon Linux 2 da Docker a containerd

In Kubernetes versione1.23, puoi usare 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 per Docker a partire da Kubernetes 1.24lancio della versione. Il containerd runtime è ampiamente adottato in Kubernetes comunità ed è un progetto laureato 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 in Creare nodi Amazon Linux autogestiti. Specificate un Amazon EKS ottimizzato AMI e il seguente testo per il BootstrapArguments parametro.

--container-runtime containerd
Gestito

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ò superare i 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

📝 Modifica questa pagina su GitHub