Sobes.tech
Junior

Může v jednom podu být více kontejnerů?

sobes.tech AI

Odpověď od AI

Ano, může. Je to běžná praxe v Kubernetes.

Více kontejnerů v jednom podu obvykle sdílí zdroje (úložný prostor, síťový zásobník) a často jsou používány pro pomocné úkoly vedle hlavního kontejneru aplikace (vzorec Sidecar).

Příklady použití:

  • Sidecar kontejnery: Monitoring, logování, proxy mesh služby (například Envoy).
  • Ambasador kontejnery: Proxy pro přístup k externím službám.
  • Adapter kontejnery: Normalizace výstupu pomocných procesů.

Kontejnery v podu jsou vždy plánovány na stejném uzlu a používají stejný namespace pro IPC (meziprocesovou komunikaci), což jim umožňuje vzájemně komunikovat.

Příklad manifestu podu se dvěma kontejnery (hlavní aplikace nginx a sidecar pro logování):

// apiVersion - verze API Kubernetes
apiVersion: v1
// kind - typ objektu (v tomto případě Pod)
kind: Pod
// metadata - metadata podu (název, štítky atd.)
metadata:
  name: multi-container-pod
spec:
  // containers - seznam kontejnerů uvnitř podu
  containers:
    // První kontejner - hlavní aplikace (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // otevřít port 80
        - containerPort: 80
    // Druhý kontejner - sidecar pro logování (fiktivní příklad)
    - name: log-sidecar
      image: busybox:latest
      args:
        // nekonečná smyčka pro simulaci logování
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done