I cluster Anthos su Bare Metal aggiungono il campo di configurazione facoltativo containerRuntime
al file di configurazione del cluster. Utilizza questo campo per configurare il runtime del container utilizzato dai nodi del cluster per pianificare i container per i pod Kubernetes.
Puoi far chiamare kubelet
direttamente all'interfaccia di runtime del container. Questa opzione ti consente di disaccoppiare kubelet
da Docker eliminando la necessità del daemon Docker.
Questa modifica è necessaria a causa degli obiettivi di Kubernetes per ritirare l'uso del daemon Docker e impostare il container come predefinito. Kubernetes prevede di inviare avvisi a partire da Kubernetes versione 1.20 e finalizzare il ritiro entro la versione 1.24.Questa modifica si allinea alla modifica pianificata per rendere containerizzato l'impostazione predefinita per GKE.
Nei cluster Anthos su Bare Metal, puoi configurare kubelet
in modo che utilizzi Docker o containerd
attraverso il nuovo campo containerRuntime
. Per impostazione predefinita, kubelet
utilizza containerd come runtime dei container.
Prima di iniziare
Identifica quale runtime del container vuoi che i cluster utilizzino. Puoi modificare il valore del campo di runtime del container solo durante l'upgrade o l'installazione di un cluster.
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 installati per entrambi i runtime:
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 i seguenti certificati sui nodi in base al runtime scelto:
- Per
containerd
:/etc/docker/certs.d/
/etc/containerd/certs.d/
- Per Docker:
/etc/docker/certs.d/
- Per
Configurare il runtime del container per un nuovo cluster
Per impostare il runtime del container per un nuovo cluster, imposta il campo containerRuntime
nella sezione nodeConfig
in spec
nel file di configurazione del cluster. I cluster Anthos su Bare Metal supportano i valori seguenti:
containerd
docker
Se il campo è vuoto o non viene configurato, i cluster Anthos su Bare Metal utilizzano containerd
per impostazione predefinita.
Per utilizzare Docker, la voce nella tua configurazione dovrebbe essere simile all'esempio seguente:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
Configurare il runtime del container durante l'upgrade di un cluster
Puoi configurare i cluster Anthos su Bare Metal in modo che utilizzino un runtime del container diverso quando esegui l'upgrade. Puoi modificare il valore del campo di runtime del container solo durante l'upgrade o l'installazione di un cluster.
Requisiti
- Upgrade dei cluster di amministrazione prima dei cluster utente
- Imposta il valore del campo
containerRuntime
nel file di configurazione prima di eseguire l'upgrade dei cluster.
Passa il runtime a Docker
Per impostare il runtime del container durante un upgrade, imposta il campo containerRuntime
nella sezione nodeConfig
in spec
nel file di configurazione del cluster. I cluster Anthos su Bare Metal supportano i valori seguenti:
containerd
docker
Per utilizzare Docker, modifica il file di configurazione in modo che sia simile all'esempio seguente:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
Per impostare il runtime del container dei nodi del cluster su docker
come parte
dell'upgrade, esegui il comando seguente per eseguire l'upgrade dei cluster:
bmctl upgrade cluster
Aggiorna i cluster con Docker impostato come runtime
Se imposti il runtime del container su docker
, il comando seguente aggiorna
i certificati di registro delle immagini in /etc/containerd/certs.d/
bmctl update cluster
Reimposta i cluster che utilizzano containerd come runtime
Se utilizzi il runtime del container predefinito, il comando seguente non elimina configurazioni, file binari o directory:
bmctl reset cluster
Durante il ripristino, il servizio containerd
continuerà a essere eseguito, ma i container pianificati da Kubernetes verranno arrestati e rimossi dal runtime dei container.
Elimina i seguenti file binari e directory per completare il ripristino:
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/systemd/system/containerd.service.d/
/etc/containerd/config.toml
/etc/containerd/certs.d/
Se utilizzi Docker come runtime, durante la reimpostazione non viene eseguita alcuna pulizia.
Controlla lo stato del runtime
Per controllare lo stato del runtime come parte del controllo di integrità della macchina, esegui il comando seguente:
systemctl status RUNTIME
Sostituisci RUNTIME
con il runtime scelto:
containerd
o docker
.