Capítulo 2.8 - Container Runtime
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender o papel do Container Runtime
- Identificar os diferentes runtimes suportados
- Explicar a interface CRI
- Entender o isolamento de containers
O que é um Container Runtime?
O Container Runtime é o software responsável pela execução dos containers em um node. Ele gerencia o ciclo de vida dos containers: criação, inicialização, parada, remoção.
Container Runtime Interface (CRI)
O Kubernetes utiliza o CRI para se comunicar com os runtimes:
Operações CRI
RunPodSandbox()- Criar um ambiente isoladoCreateContainer()- Criar um containerStartContainer()- Iniciar um containerStopContainer()- Parar um containerRemoveContainer()- Remover um container
Runtimes Suportados
1. containerd (Recomendado)
Runtime moderno, leve, usado por padrão em muitas distribuições:
Vantagens:
- Leve e performático
- Padrão da indústria
- Suporta OCI (Open Container Initiative)
2. CRI-O
Runtime otimizado para Kubernetes:
Vantagens:
- Projetado especialmente para Kubernetes
- Leve
- Compatível com OCI
3. Docker (Depreciado)
Docker via dockershim (depreciado desde o Kubernetes 1.24):
Nota: O Docker Engine ainda pode ser utilizado, mas via containerd.
Isolamento e Segurança
Namespaces Linux
Os containers utilizam os namespaces do Linux para isolamento:
Tipos de namespaces:
- PID: Isolamento de processos
- Network: Isolamento de rede
- Mount: Isolamento do filesystem
- UTS: Isolamento de hostname
- IPC: Isolamento interprocessos
- User: Isolamento de usuários
Cgroups
Limitação de recursos:
Ciclo de Vida de um Container
Imagens de Containers
Pull de Imagens
O Container Runtime baixa as imagens dos registries:
Formatos de Imagem
- OCI: Open Container Initiative (padrão)
- Docker: Formato Docker (compatível com OCI)
Comandos Úteis
# Ver containers (se Docker)
docker ps
# Ver imagens
docker images
# Ver logs de um container
docker logs <container-id>
# Inspecionar um container
docker inspect <container-id>
Resumo
Neste capítulo, você aprendeu:
Container Runtime: Executa os containers nos nodes
CRI: Interface padrão para comunicação com os runtimes
Runtimes: containerd, CRI-O (recomendados), Docker (depreciado)
Isolamento: Namespaces Linux e cgroups
Imagens: Download a partir dos registries
Próximos Passos
Agora que você entende o Container Runtime:
Capítulo 2.9: Comunicação Entre Componentes
Capítulo 2.10: Add-ons e Extensões
Capítulo criado em: Dezembro de 2024