Utilizzo di containerd per il runtime del container

La runtime del container è un software responsabile della gestione dei container e delle immagini container un nodo Kubernetes. containerd è una Certificazione CNC (Cloud Native Cloud Foundation) dal runtime del container. Supporta Kubernetes in modo nativo ed è considerato efficiente e sicuro in termini di risorse rispetto a Docker Engine per Kubernetes. Fino al giorno Kubernetes 1.20, Docker Engine dal runtime del container principale. Tuttavia, Dockershim, l'integrazione di Docker Engine in Kubernetes, è stato deprecato in Kubernetes 1.20 ed è stato rimosso in Kubernetes 1.24.

In futuro, dovrai utilizzare containerd nei tuoi cluster.

Supporto per containerd in un cluster di amministrazione

Google Distributed Cloud utilizza containerd per tutti i nodi del cluster di amministrazione.

Supporto per containerd in un cluster utente

Google Distributed Cloud supporta le seguenti Tipi di immagini sistema operativo per i nodi del cluster utente:

Tipo di immagine sistema operativoRuntime container
ubuntu_containerdcontainerd
coscontainerd
windowscontainerd

Limitazioni e consigli

  • A partire dalla versione 1.13.0, Google Distributed Cloud non supporta più il tipo di immagine sistema operativo ubuntu. Tutti i nodi del cluster devono utilizzare il runtime containerd.

  • Non puoi eseguire l'upgrade di un cluster che utilizza Docker Engine alla versione 1,13. Devi aggiornare il cluster per utilizzare il runtime containerd prima di alla versione 1.13.

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

Determina 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 cluster utente kubeconfig.

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. La il runtime per i nodi Windows è determinato dal valore enableWindowsDataplaneV2, che è un campo nel cluster utente di configurazione.

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

Esegui questo comando per determinare quali cluster utente enableWindowsDataplaneV2 impostato su false. Indica quali cluster utente e sono configurate in modo da usare i nodi Docker Engine per 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 Nodi Windows. Ad esempio:

user-cluster-1

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

Aggiorna i pool di nodi Linux per l'utilizzo di 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 di kubeconfig del custer amministratore file

  • USER_CLUSTER_CONFIG: il percorso della configurazione del cluster utente file

Aggiorna i nodi Windows per utilizzare containerd

Nel file di configurazione del cluster utente, imposta enableWindowsDataplaneV2 a 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 tutte le finestre di Windows nodi nel cluster.