Questão de Sistemas Operacionais — Contêineres (Docker, Kubernetes, etc.) — CESPE / CEBRASPE 2024
- Código
- ce404122
- Banca
- CESPE / CEBRASPE
- Órgão
- MPE TO
- Ano
- 2024
- Cargo
- Ana Min ( )
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO (E). O comando kubectl delete pods <pod> --grace-period=0 --force não "somente liberará o nome do pod no apiserver com o encerramento adequado do contêiner" — na verdade, ele força a exclusão imediata do Pod, ignorando o encerramento gracioso (graceful shutdown) e, em muitos casos, matando o contêiner abruptamente. A afirmação inverte o efeito da flag --force e do --grace-period=0, que são justamente os mecanismos para pular o encerramento adequado.
O Kubernetes é um orquestrador de contêineres que gerencia o ciclo de vida dos Pods. Quando você executa kubectl delete pod <nome>, o kubelet (agente que roda em cada nó) é notificado para encerrar o contêiner. Por padrão, o Kubernetes concede um período de graça (grace period) de 30 segundos para que o contêiner execute sua rotina de desligamento — por exemplo, finalizar conexões, salvar estado, enviar sinais de término. Esse é o "encerramento adequado" mencionado na questão.
A flag --grace-period=0 zera esse período de espera, e a flag --force instrui o apiserver a remover o Pod imediatamente, sem aguardar a confirmação do kubelet de que o contêiner foi encerrado. Na prática, o comando força a exclusão, muitas vezes resultando em um SIGKILL no contêiner, sem a chance de um desligamento limpo. Portanto, a afirmação de que o comando "somente liberará o nome do pod no apiserver com o encerramento adequado do contêiner" é exatamente o oposto do que acontece.
A pegadinha aqui é sutil: o candidato pode pensar que --grace-period=0 e --force são apenas otimizações de velocidade, mas eles mudam fundamentalmente o comportamento de exclusão. O nome do Pod é liberado no apiserver imediatamente após o comando, independentemente de o contêiner ter sido encerrado corretamente. O kubelet, em segundo plano, fará a limpeza dos recursos, mas o apiserver não espera por isso.
A banca inverte o efeito das flags. O candidato pode achar que --grace-period=0 --force garante um encerramento rápido e limpo, mas na verdade elas forçam a exclusão imediata, ignorando o encerramento gracioso. O nome do Pod é liberado no apiserver antes do encerramento adequado do contêiner, não depois.
A afirmação está incorreta porque o comando kubectl delete pods <pod> --grace-period=0 --force não aguarda o encerramento adequado do contêiner. Pelo contrário, ele força a exclusão imediata, zerando o período de graça e instruindo o apiserver a remover o Pod sem esperar a confirmação do kubelet. O nome do Pod é liberado no apiserver imediatamente, mesmo que o contêiner ainda esteja em execução ou seja morto abruptamente com SIGKILL. O encerramento adequado (graceful shutdown) é o comportamento padrão do kubectl delete, que concede 30 segundos para o contêiner finalizar suas tarefas — mas as flags --grace-period=0 e --force desativam exatamente esse comportamento.
Gabarito: ERRADO (E).
Link permanente: /questoes/ce404122