Il runtime del container è un software responsabile della gestione dei container e delle immagini container su un nodo Kubernetes. containerd è un runtime del container con classificazione CNCF (Cloud Native Cloud Foundation). Supporta Kubernetes in modo nativo ed è considerato più efficiente e sicuro in termini di 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 ed è stato rimosso in Kubernetes 1.24.
In futuro, dovresti utilizzare containerd nei tuoi cluster.
Supporto di containerd in un cluster di amministrazione
Google Distributed Cloud utilizza containerd per tutti i nodi del cluster di amministrazione.
Supporto di containerd in un cluster utente
Google Distributed Cloud supporta i seguenti tipi di immagini del sistema operativo per i nodi del cluster utente:
| Tipo di immagine sistema operativo | Runtime container | 
|---|---|
| ubuntu_containerd | containerd | 
| cos | containerd | 
| windows | containerd | 
Limitazioni e consigli
- A partire dalla versione 1.13.0, Google Distributed Cloud non supporta più il tipo di immagine del 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 eseguire l'upgrade 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. ovvero non puoi più creare nuovi cluster che utilizzano il runtime del container Docker Engine.
Determinare 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 node pool Windows in un cluster utente utilizzano lo stesso runtime del container. Il runtime per i nodi Windows è determinato dal valore di enableWindowsDataplaneV2, che è un campo nel file di 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 questo comando per determinare quali cluster utente hanno
enableWindowsDataplaneV2 impostato su false. Indica quali cluster utente
sono 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 utilizzare Docker Engine per i nodi Windows. Ad esempio:
user-cluster-1
Indipendentemente dal fatto che un cluster utente abbia node pool Windows, se il cluster
ha enableWindowsDataplaneV2 impostato su false, non potrai eseguire l'upgrade
alla versione 1.13.
Aggiorna i pool di nodi Linux per utilizzare 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 del cluster di amministrazione 
- USER_CLUSTER_CONFIG: il percorso del file di configurazione del cluster utente 
Aggiornare 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.