Utilizzo di containerd per il runtime del container

Il runtime del container è un software responsabile della gestione dei container e delle immagini container su un nodo Kubernetes. Containerd è un runtime del container gestito dal CCN (Cloud Foundation Cloud). Supporta Kubernetes in modo nativo ed è considerato più efficiente e sicuro da un punto di vista delle risorse rispetto a Docker Engine per 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 ritirato in Kubernetes 1.20 e sarà rimosso in Kubernetes 1.24. Pertanto, gli utenti di Cluster Anthos su VMware (GKE on-prem) devono pianificare l'utilizzo di Containerd per il runtime di Container il prima possibile.

Supporto per container in cluster Anthos sui nodi dei cluster di amministrazione VMware

Nei cluster Anthos su VMware 1.8, il cluster di amministrazione utilizza i container su tutti i nodi: il nodo master di amministrazione, i nodi aggiuntivi dell'amministratore e i nodi master dell'utente. Questo vale sia per i nuovi cluster di amministrazione sia per quelli esistenti sottoposti all'upgrade dalla versione 1.7.x.

Supporto per i container in cluster Anthos sui nodi dei cluster utente VMware

I cluster Anthos su VMware 1.8 introducono un nuovo tipo di immagine del sistema operativo ubuntu_containerd. Il tipo di immagine del sistema operativo ubuntu_containerd utilizza l'immagine del sistema operativo identica a ubuntu, ma il nodo è configurato in modo da utilizzare containerd come runtime del container anziché Docker Engine.

Nella versione 1.8, il tipo di immagine ubuntu_containerd OS viene utilizzato per impostazione predefinita per un nuovo pool di nodi, se osImageType non è specificato. 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 di Docker Engine verrà rimosso in Kubernetes 1.24, dovresti pianificare la conversione dei tuoi pool di nodi in modo che utilizzino il tipo di immagine del sistema operativo ubuntu_containerd.

Aggiornare osImageType utilizzato da un pool di nodi

Consulta 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 del nodo

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

Per verificare 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