I tuoi cluster utilizzano un runtime del container per creare ed eseguire pod Kubernetes. Prima della versione 1.13 di Cluster Anthos su Bare Metal, il runtime del container potrebbe essere Docker Engine
o containerd
. Tuttavia, il runtime del container può essere solo containerd
a partire dalla versione 1.13 dei cluster Anthos su Bare Metal.
Se i tuoi cluster utilizzano Docker Engine
come runtime del container, devi modificare
il runtime del container in containerd
. In questa pagina viene spiegato come impostare il runtime del container su containerd
.
Devi specificare il runtime del container impostando il valore del campo containerRuntime
nel file di configurazione del cluster. Tuttavia, l'impostazione o la modifica del valore di questo campo non è sufficiente: dovrai quindi creare un nuovo cluster o eseguire l'upgrade di un cluster esistente per rendere effettiva la modifica. In altre parole, puoi modificare il runtime del container solo quando crei un nuovo cluster o quando esegui l'upgrade di un cluster esistente.
Kubernetes 1.24 termina il supporto di Docker Engine
Il componente dockershim
in Kubernetes consente ai nodi cluster di utilizzare il runtime del container Docker Engine. Tuttavia, Kubernetes 1.24 ha rimosso il componente dockershim
. Poiché i cluster Anthos su Bare Metal versione 1.13 verranno eseguiti su Kubernetes 1.24, versione 1.13 e successive, i cluster non possono più utilizzare Docker Engine come runtime del container.
Quando esegui l'upgrade o la creazione di cluster, tieni presente le seguenti regole di runtime dei container:
- Devi utilizzare
containerd
per i cluster della versione 1.13 e successive. - Non puoi creare cluster della versione 1.12 che utilizzano il runtime del container Docker Engine.
- Puoi eseguire l'upgrade di un cluster 1.11 che utilizza Docker Engine a un cluster 1.12 che utilizza Docker Engine. Tuttavia, consigliamo vivamente di passare a
containerd
prima di eseguire l'upgrade.
L'installazione Docker che utilizzi nello sviluppo per creare immagini non è correlata al runtime del container Docker Engine all'interno del cluster Kubernetes. Puoi comunque utilizzare Docker per creare immagini e creare container di applicazioni. Questi container continueranno a funzionare all'interno del cluster.
È necessario continuare a installare Docker nella workstation di amministrazione perché il comando bmctl
richiede Docker per le operazioni, come la creazione del cluster.
Anche l'uso di Docker non è interessato dal ritiro di dockershim
.
Per istruzioni dettagliate su come modificare il runtime del container da docker
a containerd
, consulta le sezioni seguenti.
Prima di iniziare
Tieni presente che, quando esegui l'upgrade di un cluster, devi eseguire l'upgrade del cluster di amministrazione prima di eseguire l'upgrade dei cluster utente.
Assicurati che il deployment supporti
containerd
versione 1.4.6 o successive. I cluster Anthos su Bare Metal installano questa versione su qualsiasi versione installata in precedenza dicontainerd
.Assicurati che i cluster Anthos su Bare Metal possano installare i seguenti file:
File binari
/usr/bin/containerd
/usr/bin/containerd-shim
/usr/bin/containerd-shim-runc-v1
/usr/bin/containerd-shim-runc-v2
/usr/bin/crictl
/usr/bin/ctr
/usr/local/sbin/runc
File di configurazione
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/containerd/config.toml
/etc/containerd/certs.d/
/etc/systemd/system/containerd.service.d/09-proxy.conf
Questo file viene installato solo se configuri un proxy HTTP.
Assicurati che i cluster Anthos su Bare Metal possano installare il seguente certificato sui nodi:
/etc/containerd/certs.d/
Imposta containerd
come runtime del container per un nuovo cluster
Se la sezione spec.nodeConfig
del file di configurazione del cluster è vuota o non è impostata, il runtime del container viene impostato automaticamente su containerd
quando viene creato un nuovo cluster.
Tuttavia, se vuoi impostare esplicitamente containerd
come runtime del container per un nuovo cluster, imposta il campo containerRuntime su containerd
nella sezione spec.nodeConfig
del file di configurazione del cluster. Dopo averlo fatto, la configurazione del cluster dovrebbe essere simile alla seguente:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: containerd
Quando usi questo file di configurazione del cluster per creare un nuovo cluster, il runtime del container sarà containerd
.
Cambia il runtime del container da docker
a containerd
durante l'upgrade di un cluster
Per modificare il runtime del container da docker
a containerd
durante l'upgrade di un cluster, procedi nel seguente modo:
Cambia il campo containerRuntime da
docker
acontainerd
nella sezionespec.nodeConfig
del file di configurazione del cluster. Dopo averlo fatto, la configurazione del cluster dovrebbe essere simile alla seguente:apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: cluster1 namespace: cluster-cluster1 spec: nodeConfig: containerRuntime: containerd
Esegui questo comando per eseguire l'upgrade del cluster:
bmctl upgrade cluster -c CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG
Sostituisci quanto segue:
- CLUSTER_NAME con il nome del cluster che vuoi aggiornare.
- ADMIN_KUBECONFIG con il percorso del file kubeconfig del cluster di amministrazione.
Controlla lo stato del runtime del container
Per controllare lo stato del runtime del container, esegui il comando seguente:
systemctl status containerd
Cambia il runtime del container da containerd
a docker
durante l'upgrade di un cluster
Puoi utilizzare entrambi i runtime del container quando esegui l'upgrade dai cluster Anthos sulla versione 1.11-1.12 di Bare Metal. Tuttavia, consigliamo vivamente di utilizzare containerd
perché il runtime del container Docker Engine
non è supportato per la versione 1.13.0 e successive.