Anthos clusters on Bare Metal ajoute le champ de configuration containerRuntime
facultatif au fichier de configuration du cluster. Utilisez ce champ pour configurer l'environnement d'exécution des conteneurs que les nœuds de cluster utilisent pour planifier les conteneurs destinés aux pods Kubernetes.
Vous pouvez demander à kubelet
d'appeler directement l'interface de l'environnement d'exécution de conteneur. Cette option vous permet de découpler kubelet
de Docker en supprimant la nécessité du daemon Docker.
Cette modification est nécessaire en raison des objectifs de Kubernetes visant à rendre obsolète l'utilisation du daemon Docker et à faire de containerd l'environnement d'exécution par défaut. Kubernetes prévoit d'envoyer des avertissements à partir de sa version 1.20, puis de finaliser l'abandon avec la version 1.24. Ce changement est conforme à la modification planifiée faisant de containerd l'environnement d'exécution par défaut de GKE.
Dans Anthos clusters on Bare Metal, vous pouvez configurer kubelet
pour utiliser Docker ou containerd
via le nouveau champ containerRuntime
. Par défaut, kubelet
utilise containerd comme environnement d'exécution de conteneur.
Avant de commencer
Identifiez l'environnement d'exécution du conteneur que vos clusters doivent utiliser. Vous ne pouvez modifier la valeur du champ d'environnement d'exécution du conteneur que lors de la mise à niveau ou de l'installation d'un cluster.
Assurez-vous que votre déploiement est compatible avec la version 1.4.6 de
containerd
ou une version ultérieure. Anthos clusters on Bare Metal installe cette version par-dessus toutes celles précédemment installées decontainerd
.Assurez-vous qu'Anthos clusters on Bare Metal peut installer les fichiers suivants, qui sont installés pour les deux environnements d'exécution :
Fichiers binaires
/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
Fichiers de configuration
/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
Ce fichier n'est installé que si vous configurez un proxy HTTP.
Assurez-vous qu'Anthos clusters on Bare Metal peut installer les certificats suivants sur vos nœuds en fonction de l'environnement d'exécution choisi :
- Pour
containerd
:/etc/docker/certs.d/
/etc/containerd/certs.d/
- Pour Docker :
/etc/docker/certs.d/
- Pour
Configurer l'environnement d'exécution du conteneur pour un nouveau cluster
Pour définir votre environnement d'exécution de conteneur pour un nouveau cluster, définissez le champ containerRuntime
dans la section nodeConfig
de la rubrique spec
de votre fichier de configuration de cluster. Anthos clusters on Bare Metal accepte les valeurs suivantes :
containerd
docker
Si le champ est vide ou s'il n'est pas défini, Anthos clusters on Bare Metal utilise containerd
par défaut.
Pour utiliser Docker, le contenu de votre configuration doit ressembler à l'exemple suivant :
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
Configurer l'environnement d'exécution de conteneur lors de la mise à niveau d'un cluster
Vous pouvez configurer des clusters Anthos sur Bare Metal pour qu'ils utilisent un environnement d'exécution de conteneur différent lors de la mise à niveau. Vous ne pouvez modifier la valeur du champ d'environnement d'exécution du conteneur que lors de la mise à niveau ou de l'installation d'un cluster.
Conditions requises
- Mettez à niveau les clusters d'administrateur avant des clusters d'utilisateur.
- Définissez la valeur du champ
containerRuntime
dans votre fichier de configuration avant de mettre à niveau vos clusters.
Remplacer l'environnement d'exécution par Docker
Pour définir votre environnement d'exécution de conteneur lors d'une mise à niveau, définissez le champ containerRuntime
dans la section nodeConfig
de la rubrique spec
de votre fichier de configuration de cluster. Anthos clusters on Bare Metal accepte les valeurs suivantes :
containerd
docker
Pour utiliser Docker, modifiez votre fichier de configuration pour qu'il ressemble à l'exemple suivant :
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
Pour définir l'environnement d'exécution du conteneur des nœuds de cluster sur docker
lors de leur mise à niveau, exécutez la commande suivante pour mettre à jour vos clusters :
bmctl upgrade cluster
Mettre à jour des clusters où Docker est défini comme environnement d'exécution
Si vous définissez l'environnement d'exécution de conteneur sur docker
, la commande suivante met à jour les certificats du registre d'images dans /etc/containerd/certs.d/
.
bmctl update cluster
Réinitialiser les clusters qui utilisent containerd en tant qu'environnement d'exécution
Si vous utilisez l'environnement d'exécution de conteneurs par défaut, la commande suivante ne supprime pas les configurations, les fichiers binaires ni les répertoires :
bmctl reset cluster
Lors de la réinitialisation, le service containerd
continue de s'exécuter, mais les conteneurs programmés par Kubernetes sont arrêtés et supprimés de l'environnement d'exécution containerd.
Supprimez les fichiers binaires et les répertoires suivants pour terminer la réinitialisation :
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/systemd/system/containerd.service.d/
/etc/containerd/config.toml
/etc/containerd/certs.d/
Si vous utilisez Docker comme environnement d'exécution, aucun nettoyage n'est effectué pendant la réinitialisation.
Vérifier l'état de l'environnement d'exécution
Pour vérifier l'état de l'environnement d'exécution lors de la vérification de l'état de la machine, exécutez la commande suivante :
systemctl status RUNTIME
Remplacez RUNTIME
par l'environnement d'exécution choisi : containerd
ou docker
.