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.
A partire dai cluster Anthos su Bare Metal 1.7, puoi fare in modo che kubelet
chiami direttamente l'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
.
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.3 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 Docker:
/etc/docker/certs.d/
- Per
containerd
:/etc/docker/certs.d/
/etc/containerd/certs.d/
- Per Docker:
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:
docker
containerd
Se il campo è vuoto o non viene configurato, i cluster Anthos su Bare Metal utilizzano docker
per impostazione predefinita.
Per utilizzare containerd
, 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: containerd
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 da una delle seguenti versioni:
- 1,6
- 1,6,1
- 1,6,2
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 containerd
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:
docker
containerd
Per utilizzare containerd
, 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: containerd
Per impostare il runtime del container dei nodi del cluster su containerd
come parte
dell'upgrade, esegui il comando seguente per eseguire l'upgrade dei cluster:
bmctl upgrade cluster
Modifiche al piano di controllo dopo l'upgrade
Durante l'upgrade, i cluster Anthos su Bare Metal eseguono le seguenti attività sui nodi del piano di controllo per supportare il bilanciatore del carico se il runtime è stato impostato su containerd
:
- Elimina i servizi
docker.*.service
- Installa i servizi
container.*.service
- Riavvia per i servizi di sistema
haproxy
ekeepalived
I cluster che utilizzano il runtime docker
mantengono i propri servizi haproxy
e
keepalived
esistenti dopo l'upgrade.
Aggiornamento dei cluster con containerd impostato come runtime
Se imposti il runtime del container su containerd
, il comando seguente aggiorna
i certificati di registro delle immagini in /etc/containerd/certs.d/
bmctl update cluster
Reimpostazione dei cluster con containerd impostato come runtime
Se imposti il runtime del container su containerd
, il comando seguente non elimina configurazioni, file binari o directory:
bmctl reset cluster
Durante il ripristino, il servizio containerd continua a essere eseguito, ma i container pianificati da Kubernetes vengono arrestati e rimossi dal runtime containerd.
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/
Controlla lo stato del runtime containerizzato
Per controllare lo stato di containerd
come parte del controllo di integrità della macchina, esegui il comando seguente:
systemctl status containerd