Orquestração de Contêineres
medium

Orquestração de Contêineres Question #019e3a4f

Question Statement
Orquestração de Contêineres
#cri
#kubelet
#container-runtime
Medium

A Container Runtime Interface (CRI) define o protocolo para a comunicação entre:

A

O kubelet e o container runtime.

Correct
B

O container runtime e o etcd.

C

O kube-apiserver e o kubelet.

D

O container runtime e o registry de imagens.

Official Explanation / Community Explanations

A Container Runtime Interface (CRI) é uma interface de plugin que permite ao kubelet usar uma variedade de container runtimes sem precisar recompilar o kubelet. Ela define o protocolo (gRPC) e a API para comunicação entre o kubelet e o container runtime. O kubelet atua como cliente, e o container runtime (ex.: containerd, CRI-O) implementa o servidor CRI para gerenciar containers e pods.

Como funciona:

  • O kubelet, executando em cada nó, é responsável por gerenciar pods e seus containers. Ele se comunica com o container runtime via CRI para criar, iniciar, parar e excluir containers.
  • A CRI usa protocol buffers e gRPC para comunicação eficiente. O kubelet envia requisições (ex.: RunPodSandbox, CreateContainer) para o runtime, que então realiza as operações reais de container usando ferramentas de baixo nível como runc.
  • Essa abstração permite que diferentes container runtimes sejam usados de forma intercambiável, desde que implementem a especificação CRI.

Por que a opção correta está certa:
O kubelet e o container runtime são os dois componentes que interagem diretamente via CRI. O kubelet precisa instruir o runtime para gerenciar containers, e a CRI padroniza essa interação.

Por que as opções incorretas estão erradas:

  • O container runtime e o etcd: etcd é um armazenamento chave-valor distribuído usado para o estado do cluster, não para comunicação com o container runtime. O runtime não se comunica com o etcd.
  • O kube-apiserver e o kubelet: O kube-apiserver é o front-end do plano de controle do Kubernetes; o kubelet se comunica com ele para receber especificações de pods, mas essa comunicação usa a API do Kubernetes, não a CRI.
  • O container runtime e o registry de imagens: Embora o runtime baixe imagens de um registry, isso é feito por mecanismos próprios do container runtime (ex.: image pull do containerd), não através da CRI. A CRI foca no gerenciamento do ciclo de vida dos containers, não na obtenção de imagens diretamente.