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.