Images de nœuds containerd


Cette page fournit des informations sur les images de nœuds qui utilisent containerd comme environnement d'exécution de conteneur dans vos nœuds Google Kubernetes Engine (GKE).

À propos de containerd

L'environnement d'exécution des conteneurs est un logiciel qui est chargé d'exécuter des conteneurs et extrait la gestion des conteneurs pour Kubernetes. Il existe plusieurs environnements d'exécution de conteneur.

containerd est un environnement d'exécution de conteneur standard, compatible avec Kubernetes et utilisé par de nombreux autres projets. L'environnement d'exécution containerd fournit l'abstraction de couche qui permet la mise en œuvre d'un ensemble complet de fonctionnalités telles que gVisor et le streaming d'images pour étendre les fonctionnalités de GKE.

L'environnement d'exécution containerd est considéré comme étant plus économe en ressources et plus sécurisé que l'environnement d'exécution Docker.

Utiliser les images containerd dans les clusters GKE

Lorsque vous créez un cluster GKE, un nouveau pool de nœuds dans un cluster existant ou lorsque vous mettez à niveau un cluster existant, vous pouvez choisir d'utiliser une image de nœud containerd. Les clusters GKE Autopilot utilisent toujours Container-Optimized OS avec containerd.

Le tableau suivant décrit les images de nœuds containerd compatibles en fonction du mode du cluster et de l'OS de pools de nœuds :

Mode du cluster OS de pools de nœuds Image de nœud
Autopilot Linux cos_containerd
Standard Linux
  • cos_containerd
  • ubuntu_containerd
Standard Windows Server

Ces images nécessitent GKE version 1.21.1-gke.2200 ou ultérieure.

Utiliser des pods privilégiés pour accéder à Docker

Si vos utilisateurs accèdent à Docker Engine sur un nœud à l'aide d'un pod privilégié, vous devez mettre à jour ces charges de travail pour qu'elles ne dépendent pas directement de Docker. Par exemple, envisagez de migrer votre processus d'extraction de journalisation et de surveillance de Docker Engine vers les modules complémentaires du système GKE.

Créer des images de conteneurs avec containerd

Vous ne pouvez pas utiliser containerd pour créer des images de conteneurs. Les images Linux avec containerd incluent le binaire Docker afin que vous puissiez utiliser Docker pour créer et transférer des images. Toutefois, nous vous déconseillons d'utiliser des conteneurs individuels et des nœuds locaux pour exécuter des commandes permettant de créer des images.

Kubernetes ne connaît pas les ressources système utilisées par les processus locaux en dehors de son champ d'application, et le plan de contrôle de Kubernetes ne peut pas prendre en compte ces processus lors de l'allocation de ressources. Cela peut priver vos charges de travail GKE de ressources ou provoquer une instabilité sur le nœud.

Nous vous conseillons plutôt d'effectuer ces tâches à l'aide d'autres services extérieurs au champ d'application du conteneur individuel, comme Cloud Build, ou d'utiliser un outil tel que kaniko pour compiler des images en tant que charge de travail Kubernetes.

Si aucune de ces suggestions ne vous convient et que vous comprenez les risques, vous pouvez continuer à utiliser Docker sur le nœud local pour créer des images. Vous devez envoyer les images à un registre avant de pouvoir les utiliser dans un cluster GKE. Kubernetes avec containerd ne connaît pas les images compilées localement à l'aide de Docker.

Déboguer des conteneurs sur des nœuds containerd

Pour déboguer les nœuds Linux ou résoudre les problèmes associés, vous pouvez interagir avec containerd à l'aide de l'outil de ligne de commande portable crictl conçu pour les environnements d'exécution de conteneurs Kubernetes. crictl offre des fonctionnalités courantes telles que l'affichage des conteneurs et des images, la consultation des journaux et l'exécution de commandes dans les conteneurs. Reportez-vous au guide de l'utilisateur de crictl pour accéder à la liste complète des fonctionnalités compatibles et aux informations d'utilisation.

Pour les nœuds Windows Server, le daemon containerd s'exécute en tant que service Windows nommé containerd.

Les journaux sont disponibles comme suit:

  • Windows : C:\etc\kubernetes\logs\containerd.log
  • Linux: exécuter journalctl -u containerd

Vous pouvez également consulter les journaux pour les nœuds Windows et Linux dans l'explorateur de journaux sous LOG NAME: "container-runtime".

Problèmes connus et dépannage

Pour le dépannage et les problèmes connus liés aux solutions de contournement, reportez-vous à la section Dépannage de l'environnement d'exécution des conteneurs.

Étape suivante

  • Pour en savoir plus sur l'intégration de containerd, consultez l'annonce concernant Kubernetes 1.11. Pour des explications encore plus détaillées, consultez la documentation concernant containerd et les plug-ins CRI.
  • Examinez la migration à partir des informations de Dockershim sur kubernetes.io.
  • Documentez-vous sur l'abandon de DockerShim par Kubernetes.
  • Découvrez comment sécuriser vos applications avec gVisor sur containerd.
  • Découvrez les avantages de l'utilisation de Cloud Build pour créer des images de manière sécurisée et fiable sur Google Cloud en vue de remplacer une solution personnalisée nécessitant l'utilisation de Docker.