Considere que o seguinte arquivo YAML tenha sido
utilizado para criar um deployment no Kubernetes:
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.
CCerto
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.
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.