Sobes.tech
Junior

Un seul pod peut-il contenir plusieurs conteneurs?

sobes.tech IA

Réponse de l'IA

Oui, cela peut arriver. C'est une pratique courante dans Kubernetes.

Plusieurs conteneurs dans un pod partagent généralement des ressources (espace de stockage, pile réseau) et sont souvent utilisés pour effectuer des tâches auxiliaires à côté du conteneur principal de l'application (patron Sidecar).

Exemples d'utilisation :

  • Conteneurs Sidecar : Surveillance, journalisation, proxy de maillage de services (par exemple Envoy).
  • Conteneurs Ambassadeur : Proxy pour accéder à des services externes.
  • Conteneurs Adaptateur : Normalisation de la sortie des processus auxiliaires.

Les conteneurs dans un pod sont toujours planifiés sur un même nœud et utilisent le même namespace pour l'IPC (inter-processus), ce qui leur permet d'interagir.

Exemple de manifeste de pod avec deux conteneurs (application principale nginx et conteneur sidecar pour la journalisation) :

// apiVersion - version de l'API Kubernetes
apiVersion: v1
// kind - type d'objet (dans ce cas, Pod)
kind: Pod
// metadata - métadonnées du pod (nom, étiquettes, etc.)
metadata:
  name: multi-container-pod
spec:
  // containers - liste de conteneurs dans le pod
  containers:
    // Premier conteneur - application principale (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // exposer le port 80
        - containerPort: 80
    // Deuxième conteneur - sidecar pour la journalisation (exemple fictif)
    - name: log-sidecar
      image: busybox:latest
      args:
        // boucle infinie pour simuler la journalisation
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done