Vos clusters utilisent un environnement d'exécution de conteneur pour créer et exécuter des pods Kubernetes. Avant la version 1.13 des clusters Anthos sur bare metal, votre environnement d'exécution de conteneur pouvait être Docker Engine
ou containerd
. Toutefois, à partir de la version 1.13 des clusters Anthos sur bare metal, votre environnement d'exécution de conteneur ne peut être que containerd
.
Si vos clusters utilisent Docker Engine
comme environnement d'exécution de conteneur, vous devez le remplacer par containerd
. Cette page explique comment définir l'environnement d'exécution de conteneur sur containerd
.
Vous spécifiez l'environnement d'exécution de conteneur en définissant la valeur du champ containerRuntime
dans le fichier de configuration du cluster. Toutefois, il ne suffit pas de définir ou de modifier la valeur de ce champ. Vous devez ensuite créer un nouveau cluster ou mettre à niveau un cluster existant pour que la modification prenne effet. En d'autres termes, vous ne pouvez modifier l'environnement d'exécution de conteneur que lorsque vous créez un cluster ou mettez à niveau un cluster existant.
Fin de compatibilité de Kubernetes 1.24 avec Docker Engine
Le composant dockershim
de Kubernetes permet aux nœuds de cluster d'utiliser l'environnement d'exécution de conteneur Docker Engine. Toutefois, Kubernetes 1.24 a supprimé le composant dockershim
. Étant donné que les clusters Anthos sur bare metal version 1.13 s'exécuteront sur Kubernetes 1.24, les versions 1.13 et ultérieures ne peuvent plus utiliser Docker Engine en tant qu'environnement d'exécution de conteneur.
Lors de la mise à niveau ou de la création de clusters, notez les règles d'exécution de conteneur suivantes :
- Vous devez utiliser
containerd
pour les clusters des versions 1.13 et ultérieures. - Vous ne pouvez pas créer de clusters de version 1.12 qui utilisent l'environnement d'exécution de conteneur Docker Engine.
- Vous pouvez mettre à niveau un cluster 1.11 qui utilise Docker Engine vers un cluster 1.12 qui utilise Docker Engine. Toutefois, nous vous recommandons vivement de passer à
containerd
avant de procéder à la mise à niveau.
L'installation de Docker que vous utilisez en développement pour créer des images n'est pas liée à l'environnement d'exécution de conteneurs Docker Engine dans votre cluster Kubernetes. Vous pouvez toujours utiliser Docker pour créer des images et des conteneurs d'application. Ces conteneurs continueront de fonctionner dans votre cluster.
Vous devez continuer à installer Docker sur votre poste de travail administrateur, car la commande bmctl
nécessite Docker pour effectuer ses opérations, telles que la création de cluster.
Cette utilisation de Docker n'est pas affectée par l'abandon de dockershim
.
Pour obtenir des instructions détaillées sur la manière de passer l'environnement d'exécution de conteneur de docker
à containerd
, consultez les sections suivantes.
Avant de commencer
N'oubliez pas que lors de la mise à niveau d'un cluster, vous devez mettre à niveau le cluster d'administrateur avant de mettre à niveau les clusters d'utilisateur.
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 que les clusters Anthos sur bare metal peuvent installer les fichiers suivants :
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 que les clusters Anthos sur bare metal peuvent installer le certificat suivant sur vos nœuds :
/etc/containerd/certs.d/
Définir containerd
comme environnement d'exécution de conteneur pour un nouveau cluster
Si la section spec.nodeConfig
du fichier de configuration de votre cluster est vide ou non définie, l'environnement d'exécution de conteneur du cluster est automatiquement défini sur containerd
lors de la création d'un cluster.
Toutefois, si vous souhaitez définir explicitement containerd
en tant qu'environnement d'exécution de conteneur pour un nouveau cluster, définissez le champ containerRuntime sur containerd
dans la section spec.nodeConfig
du fichier de configuration du cluster. Une fois cette opération effectuée, la configuration de votre cluster doit se présenter comme suit :
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: containerd
Lorsque vous utilisez ce fichier de configuration de cluster pour créer un cluster, l'environnement d'exécution de conteneur est containerd
.
Passer l'environnement d'exécution de docker
à containerd
lors de la mise à niveau d'un cluster
Pour passer l'environnement d'exécution de conteneur de docker
à containerd
lors de la mise à niveau d'un cluster, procédez comme suit :
Changez la valeur
docker
du champ containerRuntime encontainerd
dans la sectionspec.nodeConfig
du fichier de configuration du cluster. Une fois cette opération effectuée, la configuration de votre cluster doit se présenter comme suit :apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: cluster1 namespace: cluster-cluster1 spec: nodeConfig: containerRuntime: containerd
Exécutez la commande suivante pour mettre à niveau votre cluster :
bmctl upgrade cluster -c CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG
Remplacez les éléments suivants :
- CLUSTER_NAME par le nom du cluster que vous souhaitez mettre à jour.
- ADMIN_KUBECONFIG par le chemin d'accès au fichier kubeconfig du cluster d'administrateur.
Vérifier l'état de l'environnement d'exécution de conteneur
Pour vérifier l'état de l'environnement d'exécution de conteneur, exécutez la commande suivante :
systemctl status containerd
Passer l'environnement d'exécution de containerd
à docker
lors de la mise à niveau d'un cluster
Vous pouvez utiliser l'un ou l'autre des environnements d'exécution de conteneur lors de la mise à niveau de clusters Anthos sur bare metal de la version 1.11 vers la version 1.12. Cependant, nous vous recommandons vivement d'utiliser containerd
, car l'environnement d'exécution de conteneur Docker Engine
n'est pas compatible avec les versions 1.13.0 et ultérieures.