Utilizzo di containerd per il runtime del container

Il runtime container è un software responsabile della gestione di container e immagini di container su un nodo Kubernetes. Containerd è un runtime di container CNCF (Cloud Native Cloud Foundation) aggiornato. Supporta Kubernetes in modo nativo ed è considerato più efficiente e sicuro delle risorse rispetto a Docker Engine for Kubernetes. Fino a Kubernetes 1.20, Docker Engine era il runtime del container principale. Tuttavia, Dockershim, il codice di integrazione di Docker Engine in Kubernetes, è stato deprecato in Kubernetes 1.20 e verrà rimosso in Kubernetes 1.24. Pertanto, i cluster Anthos sugli utenti VMware (GKE on-prem) devono pianificare l'utilizzo di containerd per il runtime del container il prima possibile.

Supporto per Containerd nei cluster Anthos sui nodi del cluster di amministrazione VMware

Nei cluster Anthos su VMware 1.8, il cluster di amministrazione utilizza Containerd su tutti i nodi: il nodo master dell'amministratore, i nodi del componente aggiuntivo amministratore e i nodi master dell'utente. Questo vale sia per i nuovi cluster di amministrazione sia per quelli esistenti di cui è stato eseguito l'upgrade da 1.7.x.

Supporto per containerd in cluster Anthos su nodi di cluster utente VMware

Cluster Anthos su VMware 1.8 introduce un nuovo tipo di immagine del sistema operativo ubuntu_containerd. Il tipo di immagine sistema operativo ubuntu_containerd utilizza l'immagine del sistema operativo identica a ubuntu, ma il nodo è configurato per utilizzare containerd come runtime del container invece di Docker Engine.

Nella versione 1.8, per impostazione predefinita, se osImageType non è specificato, il tipo di immagine del sistema operativo ubuntu_containerd viene utilizzato per un nuovo pool di nodi. Tuttavia, se esegui l'upgrade di un pool di nodi esistente dalla versione 1.7.x, i pool di nodi continueranno a utilizzare Docker Engine dopo l'upgrade.

Se vuoi continuare a utilizzare Docker Engine per un nuovo pool di nodi, a partire dalla versione 1.8, devi specificare esplicitamente ubuntu come osImageType. Poiché il supporto Docker Engine sarà rimosso in Kubernetes 1.24, dovresti convertire i pool di nodi per l'utilizzo del tipo di immagine sistema operativo ubuntu_containerd.

Aggiorna osImageType utilizzato da un pool di nodi

Consulta Aggiornamento di osImageType di un pool di nodi.

Migrazione da Docker Engine a containerd

Queste risorse forniscono informazioni generali sulla migrazione da Docker Engine a containerd.

Controllo del tipo di immagine nodo

Puoi controllare quale tipo di immagine viene utilizzato per i nodi esistenti.

Per eseguire il controllo con kubectl:

kubectl get nodes -o wide --kubeconfig ADMIN_CLUSTER_KUBECONFIG

dove:

  • ADMIN_CLUSTER_KUBECONFIG è il percorso del file kubeconfig per il cluster di amministrazione.

L'output è simile al seguente:

NAME ...  OS-IMAGE ...         CONTAINER-RUNTIME
node-1    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-2    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-3    Ubuntu 18.04.5 LTS   containerd://1.4.3

La colonna CONTAINER-RUNTIME restituisce il runtime e la relativa versione.

Per controllare all'interno del nodo, esegui:

sudo crictl version

L'output è simile al seguente:

Version:  0.1.0
RuntimeName:  containerd
RuntimeVersion:  1.4.3-0ubuntu0~18.04.1
RuntimeApiVersion:  v1alpha2