Sobes.tech
Junior

Poate un singur pod conține mai multe containere?

sobes.tech AI

Răspuns de la AI

Da, poate. Este o practică obișnuită în Kubernetes.

Mai multe containere într-un pod împart de obicei resurse (spațiu de stocare, stivă de rețea) și sunt adesea utilizate pentru sarcini auxiliare lângă containerul principal al aplicației (modelul Sidecar).

Exemple de utilizare:

  • Containere Sidecar: Monitorizare, jurnalizare, proxy de mesh de servicii (de exemplu Envoy).
  • Containere Ambasador: Proxy pentru accesul la servicii externe.
  • Containere Adapter: Normalizarea ieșirii proceselor auxiliare.

Containerele dintr-un pod sunt întotdeauna planificate pe același nod și utilizează același namespace pentru IPC (comunicare între procese), ceea ce le permite să interacționeze între ele.

Exemplu de manifest pentru un pod cu două containere (aplicația principală nginx și containerul sidecar pentru jurnalizare):

// apiVersion - versiunea API-ului Kubernetes
apiVersion: v1
// kind - tipul obiectului (în acest caz, Pod)
kind: Pod
// metadata - metadatele podului (nume, etichete etc.)
metadata:
  name: multi-container-pod
spec:
  // containers - lista de containere din pod
  containers:
    // Primul container - aplicația principală (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // expune portul 80
        - containerPort: 80
    // Al doilea container - sidecar pentru jurnalizare (exemplu fictiv)
    - name: log-sidecar
      image: busybox:latest
      args:
        // buclă infinită pentru a simula jurnalizarea
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done