Pular para o conteúdo principal

Questão de Sistemas Operacionais — Contêineres (Docker, Kubernetes, etc.) — CESPE / CEBRASPE 2024

Sistemas OperacionaisContêineres (Docker, Kubernetes, etc.)
Código
ce404122
Banca
CESPE / CEBRASPE
Órgão
MPE TO
Ano
2024
Cargo
Ana Min ( )
Julgue o item seguinte, no que se refere a arquiteturas de contêiner e orquestradores.   Nas versões atuais do Kubernetes, o comando a seguir somente liberará o nome do pod no apiserver com o encerramento adequado do contêiner. kubectl delete pods <pod> --grace-period=0 – force
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Kubernetes: kubectl delete e o ciclo de vida do Pod

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.

NÃO CAIA NESSA!

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.

  1. 1kubectl delete pod
  2. 2Padrão: grace 30s
  3. 3Contêiner encerra limpo
  4. 4Nome liberado no apiserver
LEVEL · soulevel.com.br

Item — ❌ ERRADO

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