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 CNCF (Cloud Native Cloud Foundation) gradualo. Supporta Kubernetes in modo nativo ed è considerato più efficiente e sicuro per le 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 deprecato in Kubernetes 1.20 ed è stato rimosso in Kubernetes 1.24.

In futuro, dovresti utilizzare i container nei tuoi cluster.

Supporto per containerd in un cluster di amministrazione

I cluster Anthos su VMware utilizzano containerd per tutti i nodi del cluster di amministrazione.

Supporto per containerd in un cluster utente

I cluster Cluster Anthos su VMware supportano i seguenti tipi di immagini del sistema operativo per i nodi cluster utente:

Tipo di immagine sistema operativoRuntime container
ubuntuCasi d'uso di
ubuntu_containerdcontainerizzato
coscontainerizzato
windowsDocker Engine o containerd

Limitazioni e consigli

  • A partire dalla versione 1.13.0, i cluster Anthos su VMware non supporteranno più il tipo di immagine del sistema operativo ubuntu. Tutti i nodi del cluster utilizzeranno il runtime containerizzato.

  • Non potrai eseguire l'upgrade di un cluster che utilizza Docker Engine alla versione 1.13.

  • A partire dalla versione 1.12.0, non puoi più creare nuovi cluster che utilizzano il tipo di immagine sistema operativo ubuntu. Questo significa che non puoi più creare nuovi cluster che utilizzano il runtime del container Docker Engine.

  • Se esegui l'upgrade di un cluster utente da 1.11 a 1.12, puoi continuare a utilizzare il runtime Docker nel cluster 1.12. Ma ti consigliamo vivamente di aggiornare il tuo cluster 1.11 per utilizzare il runtime containerizzato prima di eseguire l'upgrade alla versione 1.12.

Stabilire quali pool di nodi utilizzano Docker Engine

Ubuntu

Elenca i pool di nodi Ubuntu che utilizzano Docker Engine:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get onpremnodepools \
    -o json -A | jq -r '.items[] |select(.spec.osImageType == "ubuntu")|.metadata.name'

Sostituisci USER_CLUSTER_KUBECONFIG con il percorso del file kubeconfig del cluster utente.

Output di esempio:

ubuntu-node-pool-1
ubuntu-node-pool-3

Windows

Tutti i pool di nodi Windows in un cluster utente utilizzano lo stesso runtime del container. Il tempo di esecuzione per i nodi Windows è determinato dal valore di enableWindowsDataplaneV2, che è un campo nella configurazione del cluster utente.

Se enableWindowsDataplaneV2 è true, tutti i nodi Windows nel cluster utente utilizzano containerd. Se è false, tutti i nodi Windows utilizzano Docker Engine.

Esegui il comando seguente per determinare per quali cluster utente enableWindowsDataplaneV2 è impostato su false. Questo indica i cluster utente configurati per utilizzare Docker Engine per i nodi Windows.

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get onpremuserclusters \
    -A -o json | jq -r '.items[] |select(.spec.enableWindowsDataplaneV2 == false)|.metadata.name'

L'output elenca tutti i cluster utente configurati per l'utilizzo di Docker Engine per i nodi Windows. Ad esempio:

user-cluster-1

Indipendentemente dal fatto che un cluster utente abbia pool di nodi Windows, se il cluster ha enableWindowsDataplaneV2 impostato su false, non potrai eseguire l'upgrade alla versione 1.13.

Aggiorna i pool di nodi Linux in modo che utilizzino containerd

Per ogni pool di nodi nel file di configurazione del cluster utente, imposta osImageType ubuntu_containerd o cos.

Esempio:

nodePools
- name: "my-node-pool"
  osImageType: "ubuntu_containerd"

Aggiorna il cluster utente:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Sostituisci quanto segue:

  • ADMIN_CLUSTER_KUBECONFIG: il percorso del file kubeconfig di amministrazione

  • USER_CLUSTER_CONFIG: il percorso del file di configurazione del cluster utente

Aggiorna i nodi Windows per utilizzare containerd

Nel file di configurazione del cluster utente, imposta enableWindowsDataplaneV2 su true.

enableWindowsDataplaneV2: true

Aggiorna il cluster utente:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Il comando precedente imposta il runtime del container su containerd per tutti i nodi Windows nel cluster.