Pular para o conteúdo principal

Questão de Engenharia de Software — Desenvolvimento de Software — CESPE / CEBRASPE 2025

Engenharia de SoftwareDesenvolvimento de Software
Código
ce215087
Banca
CESPE / CEBRASPE
Órgão
STM
Ano
2025
Nível
Superior
Cargo
Analista Judiciário - Área: Apoio Especializado - Especialidade: Análise de Sistemas
Considere que o seguinte arquivo YAML tenha sido utilizado para criar um deployment no Kubernetes: 

Imagem da questão

A partir das informações da situação hipotética precedente, julgue o item a seguir. 
O campo selector dentro do grupo spec, no código em apreço, é usado para encontrar os pods que pertencem a esse deployment, com base no rótulo app: nginx.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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: Deployment e o campo selector

Gabarito: Certo (C). No Kubernetes, o campo selector dentro do grupo spec de um Deployment é, de fato, usado para encontrar os Pods que pertencem a esse Deployment, com base nos rótulos (labels) definidos — no caso, o rótulo app: nginx. Essa é a função central do seletor: identificar quais Pods o Deployment deve gerenciar.

O Kubernetes é um orquestrador de contêineres que automatiza a implantação, o escalonamento e a operação de aplicações em contêineres. Para gerenciar um conjunto de Pods, o Kubernetes precisa de um mecanismo para agrupá-los e identificá-los. Esse mecanismo é baseado em rótulos (labels) e seletores (selectors).

Os rótulos são pares de chave-valor anexados a objetos, como Pods, e são usados para organizar e selecionar subconjuntos de objetos. O campo selector em um Deployment define uma consulta que identifica os Pods que ele deve controlar. Essa consulta é baseada nos rótulos dos Pods. No YAML fornecido, o Deployment tem um selector que busca Pods com o rótulo app: nginx. Isso significa que o Deployment vai gerenciar todos os Pods que possuem esse rótulo específico.

Na prática, quando você cria um Deployment, ele cria um ReplicaSet, que por sua vez cria os Pods. O ReplicaSet usa o selector para saber quais Pods ele deve manter em execução e quantas réplicas deve garantir. Se um Pod com o rótulo app: nginx for criado fora do Deployment, o ReplicaSet pode até tentar gerenciá-lo, dependendo da configuração. Por isso, é fundamental que o selector corresponda exatamente aos rótulos definidos no template do Pod (spec.template.metadata.labels).

A distinção importante aqui é entre o selector e o template. O template define o modelo dos Pods que serão criados, incluindo seus rótulos. O selector define quais Pods o Deployment vai gerenciar. Eles devem ser consistentes: o selector deve corresponder aos rótulos do template. Se houver divergência, o Deployment pode não gerenciar os Pods corretamente, ou pode gerenciar Pods que não deveria.

A pegadinha que a banca poderia explorar é confundir o selector com o template, ou afirmar que o selector é usado para outra finalidade, como roteamento de rede ou balanceamento de carga. No entanto, a afirmação da questão está correta: o selector é usado para encontrar os Pods que pertencem ao Deployment, com base no rótulo app: nginx.

1selector
Encontra Pods do Deployment
Base: labels (app: nginx)
2template
Define modelo dos Pods
Inclui labels
3Consistência
selector deve corresponder ao template
Divergência → falha no gerenciamento
Deployment (Kubernetes)
LEVELsoulevel.com.br
Deployment (Kubernetes): selector (Encontra Pods do Deployment, Base: labels (app: nginx)); template (Define modelo dos Pods, Inclui labels); Consistência (selector deve corresponder ao template, Divergência → falha no gerenciamento)

Item — ✅ CERTO

A afirmação está correta. O campo selector dentro do grupo spec de um Deployment é, de fato, usado para encontrar os Pods que pertencem a esse Deployment, com base no rótulo app: nginx. Essa é a função primária do seletor: identificar quais Pods o Deployment deve gerenciar, garantindo que o ReplicaSet mantenha o número desejado de réplicas.

Gabarito: Certo (C).

Link permanente: /questoes/ce215087