Sobes.tech
Junior

Pode um único pod conter vários contenedores?

sobes.tech IA

Resposta da IA

Sim, pode. É uma prática comum no Kubernetes.

Vários contêineres num pod geralmente partilham recursos (espaço de armazenamento, pilha de rede) e são frequentemente utilizados para tarefas auxiliares ao lado do contêiner principal da aplicação (padrão Sidecar).

Exemplos de uso:

  • Contêineres Sidecar: Monitoramento, registo, proxy de malha de serviços (por exemplo, Envoy).
  • Contêineres Embaixador: Proxy para acesso a serviços externos.
  • Contêineres Adaptador: Normalização da saída de processos auxiliares.

Os contêineres num pod são sempre agendados no mesmo nó e usam o mesmo namespace para IPC (inter-processos), permitindo que interajam entre si.

Exemplo de manifesto de um pod com dois contêineres (aplicação principal nginx e contêiner sidecar para registo):

// apiVersion - versão da API do Kubernetes
apiVersion: v1
// kind - tipo de objeto (neste caso, Pod)
kind: Pod
// metadata - metadados do pod (nome, etiquetas, etc.)
metadata:
  name: multi-container-pod
spec:
  // containers - lista de contêineres dentro do pod
  containers:
    // Primeiro contêiner - aplicação principal (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // expor porta 80
        - containerPort: 80
    // Segundo contêiner - sidecar para registo (exemplo fictício)
    - name: log-sidecar
      image: busybox:latest
      args:
        // ciclo infinito para simular registo
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done