Questão nº 51
Questão de Tecnologia da Informação · FGV TRF1 2024 (nº 51)
A analista Joelma está atualizando o cluster Kubernetes do TRF1.
Ao longo da atualização, ela deve configurar tanto os kubelets
quanto os runtimes de container do cluster para trabalharem
com a versão 2 do mecanismo de grupos de controle do Linux, o
cgroup v2.
Para utilizar o Kubernetes com o cgroup v2, Joelma deve
configurar os kubelets para usar o driver de grupo de controle:
- Acadvisor;
- Bncgroup;
- Csystemd; (alternativa correta)
- Dcgroupfs;
- Econtainerd.
Resposta comentada
Gabarito Alternativa C
O `cgroup` (control groups) é um recurso do kernel Linux que organiza processos em grupos para gerenciar e alocar recursos do sistema (CPU, memória, etc.). `cgroup v2` é a versão mais recente e unificada desse mecanismo. Para que o `kubelet` (o agente do Kubernetes em cada servidor) consiga gerenciar os recursos dos containers usando o `cgroup v2`, ele precisa ser configurado com o driver de grupo de controle correto.
A) Incorreta: `cadvisor` é uma ferramenta de código aberto que coleta, agrega, processa e exporta informações sobre o uso de recursos e o desempenho de containers, mas não é um driver de grupo de controle.
B) Incorreta: `ncgroup` não é um driver de grupo de controle reconhecido ou padrão no contexto do Kubernetes ou Linux.
C) Correta: Para utilizar o `cgroup v2` com o Kubernetes, o `kubelet` deve ser configurado para usar o driver de grupo de controle `systemd`. O `systemd` é o sistema de inicialização e gerenciador de serviços padrão em muitas distribuições Linux modernas e possui uma integração nativa e otimizada com o `cgroup v2`, gerenciando a hierarquia de grupos de controle de forma unificada.
D) Incorreta: `cgroupfs` é o driver de grupo de controle padrão para `cgroup v1`. Embora funcione bem com a versão anterior, ele não é o driver recomendado nem compatível com a arquitetura unificada do `cgroup v2` no contexto do Kubernetes. A armadilha aqui é que `cgroupfs` é um driver comum e conhecido, mas é para a versão antiga do `cgroup`.
E) Incorreta: `containerd` é um runtime de container, responsável por gerenciar o ciclo de vida dos containers (iniciar, parar, etc.). Ele próprio utiliza um driver de grupo de controle para interagir com o kernel, mas não é o driver que o `kubelet` configura diretamente.
Fonte: FGV TRF1 2024 Técnico Judiciário - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.