Esegui la 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? Scegli il GitHub link Modifica questa pagina che si trova nel riquadro destro di ogni pagina. 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 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 EKS ha inoltre interrotto il supporto per dockershim iniziare con Kubernetes 1.24rilascio della versione. Amazon EKS AMIs che vengono pubblicati ufficialmente ha containerd come unico runtime che inizia con la versione1.24. Questo argomento contiene alcuni dettagli, ma ulteriori informazioni sono disponibili in Tutto quello che devi sapere sul passaggio a containerd su Amazon EKS.

C'è un kubectl plugin che puoi usare per vedere quali delle tue Kubernetes i carichi di lavoro montano il Docker volume del socket. Per ulteriori informazioni, vedere Detector for Docker Socket (DDS) su GitHub. Amazon EKS AMIs che funzionano Kubernetes versioni precedenti all'1.24uso Docker come runtime predefinito. Tuttavia, questi Amazon EKS AMIs dispongono di un'opzione di flag bootstrap che puoi utilizzare per testare i tuoi carichi di lavoro su qualsiasi cluster supportato. 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 dei rilasci. 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 convalidare su cui vengono eseguiti i tuoi carichi di lavoro. containerd

Il containerd runtime offre prestazioni e sicurezza più affidabili. containerdè il runtime standardizzato su Amazon EKS. Fargate e Bottlerocket già in uso containerd solo. containerdaiuta a ridurre al minimo il numero di versioni AMI di Amazon EKS necessarie per risolvere vulnerabilità ed 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 l'assistente credenziali Amazon ECR per estrarre immagini, devi passare al provider di credenziali per immagini kubelet. 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 bootstrap di Amazon EKS supportava in precedenza non sono più supportati. Prima di passare ad Amazon EKS 1.24 o versioni successive, devi rimuovere tutti i riferimenti ai flag che attualmente 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 formato JSON. Al contrariodockerd, il runtime del containerd contenitore contiene messaggi di registro che non sono in formato JSON. 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 un'AMI personalizzata e stai effettuando l'upgrade ad 1.24 Amazon EKS, devi assicurarti che l'inoltro IP sia abilitato per i tuoi nodi worker. 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 utilizzare un flag bootstrap opzionale per abilitare il containerd runtime ottimizzato AL2 AMIs per Amazon EKS. 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 terminato il supporto per Docker a partire da Kubernetes 1.24lancio della versione. Il containerd runtime è ampiamente adottato in Kubernetes comunità ed è un progetto laureato con il CNCF. È 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. Specifica un'AMI ottimizzata per Amazon EKS e il testo seguente per il parametro BootstrapArguments.

--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 l'ID di un'AMI ottimizzata per ami-1234567890abcdef0 , consulta la sezione Recupera le AMI Amazon Linux consigliate 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 Specifica di 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 avvio, specifica l'ID di un'AMI ottimizzata per Amazon EKS, quindi implementa il gruppo di nodi utilizzando un modello di avvio e fornisci i seguenti dati utente. Questi dati utente passano gli argomenti nel file bootstrap.sh. Per ulteriori informazioni sul file bootstrap, vedete bootstrap.sh su GitHub.

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