Pular para o conteúdo principal

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 isolado
  • CreateContainer() - Criar um container
  • StartContainer() - Iniciar um container
  • StopContainer() - Parar um container
  • RemoveContainer() - 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