Sobes.tech
Junior

Può un singolo pod contenere più contenitori?

sobes.tech AI

Risposta dell'AI

Sì, può. È una pratica comune in Kubernetes.

Diversi contenitori in un pod condividono generalmente risorse (spazio di archiviazione, stack di rete) e sono spesso utilizzati per compiti ausiliari accanto al contenitore principale dell'applicazione (pattern Sidecar).

Esempi di utilizzo:

  • Contenitori Sidecar: Monitoraggio, logging, proxy di mesh di servizi (ad esempio Envoy).
  • Contenitori Ambasciatore: Proxy per l'accesso a servizi esterni.
  • Contenitori Adapter: Normalizzazione dell'output dei processi ausiliari.

I contenitori in un pod sono sempre pianificati sullo stesso nodo e usano lo stesso namespace per IPC (inter-processo), consentendo loro di interagire.

Esempio di manifest di un pod con due contenitori (app principale nginx e contenitore sidecar per il logging):

// apiVersion - versione dell'API di Kubernetes
apiVersion: v1
// kind - tipo di oggetto (in questo caso, Pod)
kind: Pod
// metadata - metadati del pod (nome, etichette, ecc.)
metadata:
  name: multi-container-pod
spec:
  // containers - lista di contenitori all'interno del pod
  containers:
    // Primo contenitore - applicazione principale (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // esporre porta 80
        - containerPort: 80
    // Secondo contenitore - sidecar per il logging (esempio fittizio)
    - name: log-sidecar
      image: busybox:latest
      args:
        // ciclo infinito per simulare il logging
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done