Orquestração de Contêineres Question #019e3a4f
A Container Runtime Interface (CRI) define o protocolo para a comunicação entre:
O kubelet e o container runtime.
O container runtime e o etcd.
O kube-apiserver e o kubelet.
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.