0Pricing
Kubernetes Basics · Leçon

Pods multi-conteneurs (sidecars)

Découvrez les modèles permettant d’exécuter plusieurs conteneurs colocalisés dans un même Pod, notamment les conteneurs sidecar.

Pods multi-conteneurs (sidecars) est une leçon Kubernetes Basics gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kubernetes Basics, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kubernetes Basics comprend 4 leçons au total.

Au-delà d’un conteneur unique

Jusqu’à présent, nous avons considéré les Pods comme exécutant un seul conteneur. Mais que faire si votre application a besoin d’un processus auxiliaire ?

Kubernetes permet à un Pod d’exécuter plusieurs conteneurs. Ces conteneurs sont toujours regroupés au même endroit et partagent les ressources.

Pourquoi utiliser plusieurs conteneurs dans un Pod ?

Exécuter plusieurs conteneurs dans un même Pod convient particulièrement aux applications étroitement couplées qui doivent partager :

  • Un espace de noms réseau (la même adresse IP, avec la possibilité de communiquer via localhost)
  • Des volumes de stockage
  • Le cycle de vie (ils démarrent, s’arrêtent et redémarrent ensemble)

Cela permet de gérer les processus associés comme une seule unité.

Explication du modèle de conteneur auxiliaire

Le modèle de conteneur auxiliaire est une conception courante. Dans ce modèle, un conteneur « auxiliaire » s’exécute à côté du conteneur de votre application principale.

Il étend ou améliore les fonctionnalités de l’application principale sans modifier l’application elle-même. Imaginez-le comme un compagnon serviable !

Cas d’utilisation des conteneurs auxiliaires

Les conteneurs auxiliaires sont extrêmement polyvalents. Voici quelques utilisations courantes :

  • Collecte des journaux : un conteneur auxiliaire collecte les journaux de l’application principale et les envoie à un service centralisé de collecte des journaux.
  • Proxy : un conteneur auxiliaire fournit un service de proxy réseau, par exemple pour la sécurité (mTLS) ou la gestion du trafic.
  • Synchronisation de fichiers : un conteneur auxiliaire maintient à jour un volume partagé contenant des fichiers de configuration ou des données.

Pod avec deux conteneurs (YAML)

Examinons comment définir plusieurs conteneurs dans le manifeste YAML d’un Pod. Chaque conteneur est un élément du tableau containers.

Remarquez les conteneurs nginx-proxy et main-app définis sous spec.containers.

apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  containers:
  - name: nginx-proxy
    image: nginx:latest
    ports:
    - containerPort: 80
  - name: main-app
    image: busybox:latest
    command: ["sh", "-c", "echo 'Hello from main app!' && sleep 3600"]

Stockage partagé : emptyDir

Les conteneurs d’un même Pod peuvent partager des données à l’aide des volumes Kubernetes. Une méthode simple consiste à utiliser un volume emptyDir.

Un volume emptyDir est créé lorsqu’un Pod est affecté à un nœud et existe tant que ce Pod s’exécute sur ce nœud. Il s’agit d’un stockage temporaire.

Exemple : conteneur auxiliaire collecteur de journaux

Imaginez une application principale qui génère des journaux dans un fichier. Un conteneur auxiliaire peut ensuite lire ce fichier journal et l’envoyer à un service de collecte des journaux.

Cela découple la logique de collecte des journaux de votre application principale, qui reste ainsi claire et centrée sur sa fonction.

YAML du collecteur de journaux (partie 1)

Voici le YAML de notre exemple de collecteur de journaux. Nous définissons un volume emptyDir nommé log-volume. Les deux conteneurs monteront ce volume.

Le conteneur main-app écrit un message de journal dans /var/log/app.log, à l’intérieur du volume partagé.

apiVersion: v1
kind: Pod
metadata:
  name: log-collector-pod
spec:
  volumes:
  - name: log-volume
    emptyDir: {}
  containers:
  - name: main-app
    image: busybox:latest
    command: ["sh", "-c", "while true; do echo $(date) 'Main app log entry' >> /var/log/app.log; sleep 1; done"]
    volumeMounts:
    - name: log-volume
      mountPath: /var/log

YAML du collecteur de journaux (partie 2)

À présent, le conteneur log-sidecar monte le même log-volume. Il utilise ensuite tail -f pour lire en continu le fichier journal écrit par l’application principale.

Dans un cas réel, ce conteneur auxiliaire traiterait ces journaux et les enverrait à un système de journalisation tel qu’Elasticsearch ou Splunk.

apiVersion: v1
kind: Pod
metadata:
  name: log-collector-pod # Same Pod as before
spec:
  volumes:
  - name: log-volume
    emptyDir: {}
  containers:
  - name: main-app
    image: busybox:latest
    command: ["sh", "-c", "while true; do echo $(date) 'Main app log entry' >> /var/log/app.log; sleep 1; done"]
    volumeMounts:
    - name: log-volume
      mountPath: /var/log
  - name: log-sidecar
    image: busybox:latest
    command: ["sh", "-c", "tail -f /var/log/app.log"]
    volumeMounts:
    - name: log-volume
      mountPath: /var/log

Vérification rapide : avantages des conteneurs auxiliaires

Les Pods à plusieurs conteneurs, en particulier avec le modèle de conteneur auxiliaire, offrent plusieurs avantages pour gérer des applications complexes.

Parmi les propositions suivantes, lesquelles constituent des avantages essentiels de l’utilisation d’un conteneur auxiliaire ?

Récapitulatif : Pods à plusieurs conteneurs

Excellent travail ! Vous avez découvert les Pods à plusieurs conteneurs et le puissant modèle de conteneur auxiliaire.

  • Les Pods peuvent héberger plusieurs conteneurs qui partagent le réseau et le stockage.
  • Le modèle de conteneur auxiliaire aide à étendre ou à améliorer les fonctionnalités de l’application principale.
  • Les utilisations courantes comprennent la collecte des journaux, les proxies et la synchronisation des données.
  • Les volumes emptyDir fournissent un stockage partagé temporaire au sein d’un Pod.

Ce modèle est essentiel pour créer des applications robustes et modulaires dans Kubernetes !

Questions Fréquemment Posées

La leçon « Pods multi-conteneurs (sidecars) » est-elle gratuite ?

Oui — le texte complet de « Pods multi-conteneurs (sidecars) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kubernetes Basics, passe à CoddyKit PRO. Le cours Kubernetes Basics comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Pods multi-conteneurs (sidecars) » ?

Découvrez les modèles permettant d’exécuter plusieurs conteneurs colocalisés dans un même Pod, notamment les conteneurs sidecar. Tu pratiques Kubernetes Basics avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Kubernetes Basics ?

Aucune expérience préalable n'est requise. Kubernetes Basics sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Pods multi-conteneurs (sidecars) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Kubernetes Basics ?

Oui. Chaque leçon Kubernetes Basics inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pods : la plus petite unité
  2. Cycle de vie et états des Pods
  3. Pods multi-conteneurs (sidecars)
  4. Conteneurs d’initialisation et ordre de démarrage
← Retour à Kubernetes Basics