Google Distributed Cloud utilizza containerd come runtime dei container su tutti i nodi dei cluster di amministrazione e utente, inclusi i nodi Windows. In quanto runtime dei container graduato della Cloud Native Computing Foundation (CNCF), containerd fornisce il supporto integrato di Kubernetes.
Kubernetes 1.24 ha rimosso dockershim, il componente che consentiva a Kubernetes di utilizzare Docker Engine come runtime del container. In questo documento, troverai i node pool che utilizzano ancora Docker Engine e li aggiornerai a containerd.
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 sistema operativo per i nodi dei cluster utente:
| Tipo di immagine sistema operativo | Runtime container |
|---|---|
ubuntu_cgv2 | containerd |
cos_cgv2 | containerd |
windows | containerd |
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 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. Ciò significa che non puoi più creare nuovi cluster che utilizzano il runtime dei container Docker Engine.
Determina quali node pool utilizzano Docker Engine
Ubuntu
Elenca i node pool 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. In questo modo, puoi sapere 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 l'utilizzo di Docker Engine per i nodi Windows. Ad esempio:
user-cluster-1
Indipendentemente dal fatto che un cluster utente abbia o meno node pool Windows, se il cluster ha enableWindowsDataplaneV2 impostato su false, non potrai eseguirne l'upgrade alla versione 1.13.
Aggiorna i node pool Linux per utilizzare containerd
Per ogni pool di nodi nel file di configurazione del cluster utente, imposta
osImageType
su osImageType, ubuntu_cgv2 o cos_cgv2.
Esempio:
nodePools - name: "my-node-pool" osImageType: "ubuntu_cgv2"
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
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.