Sobes.tech
Junior

Czy w jednym podzie może znajdować się wiele kontenerów?

sobes.tech AI

Odpowiedź od AI

Tak, może. To powszechna praktyka w Kubernetes.

Wiele kontenerów w podzie zazwyczaj dzieli zasoby (przestrzeń dyskową, stos sieciowy) i często jest używanych do wykonywania zadań pomocniczych obok głównego kontenera aplikacji (wzorzec Sidecar).

Przykłady zastosowania:

  • Kontenery Sidecar: Monitorowanie, logowanie, proxy mesh usług (np. Envoy).
  • Kontenery Ambasador: Proxy do dostępu do usług zewnętrznych.
  • Kontenery Adapter: Normalizacja wyjścia procesów pomocniczych.

Kontenery w podzie zawsze są planowane na tym samym węźle i korzystają z tego samego namespace dla IPC (interprocesowego komunikowania), co umożliwia im wzajemną interakcję.

Przykład manifestu podu z dwoma kontenerami (główna aplikacja nginx i kontener sidecar do logowania):

// apiVersion - wersja API Kubernetes
apiVersion: v1
// kind - typ obiektu (w tym przypadku Pod)
kind: Pod
// metadata - metadane podu (nazwa, etykiety itp.)
metadata:
  name: multi-container-pod
spec:
  // containers - lista kontenerów w podzie
  containers:
    // Pierwszy kontener - główna aplikacja (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // wystaw port 80
        - containerPort: 80
    // Drugi kontener - sidecar do logowania (przykład fikcyjny)
    - name: log-sidecar
      image: busybox:latest
      args:
        // nieskończona pętla do symulacji logowania
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done