Sobes.tech
Junior

Kas ühe podi sees võib olla mitu konteinerit?

sobes.tech AI

Vastus AI-lt

Jah, see võib olla. See on tavaline praktika Kubernetesis.

Mitmed konteinerid ühes podis jagavad tavaliselt ressursse (salvestusruumi, võrgustiku stacki) ning neid kasutatakse sageli abiprotsesside täitmiseks kõrval peamise rakenduse konteineriga (Sidecar muster).

Kasutusnäited:

  • Sidecar konteinerid: Jälgimine, logimine, teenuse võrgu proksi (näiteks Envoy).
  • Ambassador konteinerid: Proksi väliste teenuste juurde pääsemiseks.
  • Adapter konteinerid: Abiprotsesside väljundi normaliseerimine.

Podis olevad konteinerid planeeritakse alati samale sõlmele (Node) ning kasutavad sama namespace'i IPC (vaheprotsesside suhtlus), mis võimaldab neil omavahel suhelda.

Näide kahe konteineriga podi manifestist (peamine nginx rakendus ja logimise sidecar):

// apiVersion - Kubernetes API versiooni
apiVersion: v1
// kind - objekti tüüp (selles juhul Pod)
kind: Pod
// metadata - podi metaandmed (nimi, sildid jms)
metadata:
  name: multi-container-pod
spec:
  // containers - konteinerite nimekiri podis
  containers:
    // Esimene konteiner - peamine rakendus (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // avada port 80
        - containerPort: 80
    // Teine konteiner - logimise sidecar (fiktiivne näide)
    - name: log-sidecar
      image: busybox:latest
      args:
        // lõpmatu tsükkel logimise simuleerimiseks
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done