Sobes.tech
Junior

Môže byť v jednom podu viacero kontajnerov?

sobes.tech AI

Odpoveď od AI

Áno, môže byť. Je to bežná prax v Kubernetes.

Viaceré kontajnery v jednom podi zdieľajú zvyčajne zdroje (úložný priestor, sieťový zásobník) a často sa používajú na vykonávanie pomocných úloh vedľa hlavného kontajnera aplikácie (vzorec Sidecar).

Príklady použitia:

  • Sidecar kontajnery: Monitorovanie, logovanie, proxy mesh služby (napríklad Envoy).
  • Ambassador kontajnery: Proxy na prístup k externým službám.
  • Adapter kontajnery: Normalizácia výstupu pomocných procesov.

Kontajnery v podi sú vždy plánované na tom istom uzle (Node) a používajú rovnaký namespace pre IPC (interprocesovú komunikáciu), čo im umožňuje navzájom komunikovať.

Príklad manifestu podu so dvomi kontajnermi (hlavná aplikácia nginx a sidecar na logovanie):

// apiVersion - verzia API Kubernetes
apiVersion: v1
// kind - typ objektu (v tomto prípade Pod)
kind: Pod
// metadata - metadáta podu (názov, štítky atď.)
metadata:
  name: multi-container-pod
spec:
  // containers - zoznam kontajnerov v podi
  containers:
    // Prvý kontajner - hlavná aplikácia (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // otvoriť port 80
        - containerPort: 80
    // Druhý kontajner - sidecar na logovanie (fiktívny príklad)
    - name: log-sidecar
      image: busybox:latest
      args:
        // nekonečná slučka na simuláciu logovania
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done