Capítulo 3.1 - Introdução aos Pods
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender o que é um Pod
- Explicar por que os Pods existem
- Distinguir Pods de containers
- Entender os casos de uso de Pods multi-contêiner
O que é um Pod?
Um Pod é a menor unidade implantável no Kubernetes. É um grupo de um ou mais containers que compartilham:
- O mesmo endereço IP
- O mesmo namespace de rede
- Os mesmos volumes (armazenamento)
- O mesmo namespace IPC
Por que Pods?
Abstração acima dos Containers
O Kubernetes não gerencia containers diretamente, mas sim Pods:
Vantagens:
- Gerenciamento de grupos de containers
- Compartilhamento de recursos
- Consistência de rede
Pods de Único Container
A maioria dos Pods contém apenas um container:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx:1.20
Pods Multi-Contêiner
Um Pod pode conter vários containers que trabalham juntos:
Caso de Uso: Sidecar Pattern
apiVersion: v1
kind: Pod
metadata:
name: app-with-logger
spec:
containers:
- name: app
image: my-app:1.0
- name: logger
image: fluentd:latest
Exemplos de sidecars:
- Logging (Fluentd, Logstash)
- Monitoramento (Prometheus exporter)
- Proxy (Envoy, nginx)
- Sincronização de arquivos
Comunicação Entre Containers em um Pod
Os containers em um Pod se comunicam via localhost:
Exemplo:
# Dentro do contêiner 1
curl http://localhost:8080 # Comunica com o contêiner 2
Volumes Compartilhados
Os containers em um Pod compartilham volumes:
apiVersion: v1
kind: Pod
metadata:
name: shared-volume-pod
spec:
containers:
- name: writer
image: busybox
volumeMounts:
- name: shared-data
mountPath: /data
- name: reader
image: busybox
volumeMounts:
- name: shared-data
mountPath: /data
volumes:
- name: shared-data
emptyDir: {}
Resumo
Neste capítulo, você aprendeu:
Pod: Menor unidade implantável, grupo de containers
Recursos compartilhados: IP, rede, volumes, IPC
Pods de único container: Caso mais comum
Pods multi-contêiner: Para sidecars e containers colaborativos
Comunicação: Via localhost entre containers de um mesmo Pod
Próximos Passos
Agora que você entende os Pods:
Capítulo 3.2: Declaração YAML de Pods
Lab 3.1: Criação e Gerenciamento de Pods
Capítulo criado em: Dezembro 2024