Sobes.tech
Junior

Qual é a diferença entre Pod e Deployment no Kubernetes?

sobes.tech IA

Resposta da IA

Pod — a menor unidade escalável no Kubernetes, representando um grupo de um ou vários contêineres com recursos comuns (rede, armazenamento). Deployment — é um controlador que gere a vida útil dos Pods, garantindo seu estado declarado, escalonamento, atualizações e rollback.

Principais diferenças:

Característica Pod Deployment
Geribilidade Unidade primitiva, não se recupera automaticamente Controlador que gerencia múltiplos Pods
Tolerância a falhas Baixa (o Pod é perdido se o nó falhar) Alta (reinicia automaticamente os Pods)
Escalonamento Manual, um por um Escala facilmente via réplicas
Atualizações Sem mecanismos embutidos Suporta estratégias Rolling Update, Recreate
Uso Para casos simples, depuração Para aplicações em produção, microsserviços

Deployment cria um ReplicaSet, que por sua vez gerencia a quantidade desejada de réplicas de Pods. Isso garante a confiabilidade e disponibilidade da aplicação.

Exemplo YAML para Pod:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx

Exemplo YAML para Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3 # Define a quantidade desejada de réplicas de Pods
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: nginx

Resumindo, Pod é simplesmente uma "caixa" para contêineres, e Deployment é um "gerente" que supervisiona essas "caixas" para que tenham a quantidade certa e funcionem de forma estável.