Questão nº 36
Questão de Infraestrutura Tecnológica · FGV SEFAZ-MG 2022 - Tarde (nº 36)
O código a seguir corresponde a um exemplo básico do manifesto de um pod.
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- image: nginx:1.14.2
name: nginx
resources:
requests:
cpu: "500m"
memory: "128Mi"
ports:
- containerPort: 80
name: http
protocol: TCP
Em relação aos manifestos, pods e sua execução, assinale a afirmativa incorreta.
- AO comando `kubectl apply` é usado iniciar uma única instância do pod. Exemplo: `kubectl apply -f pod.yaml`
- BO comando `kubectl get` é usado para listar os pods. Exemplo: `kubectl get pods --all-namespaces.`
- CO kubernetes agendará esse pod para ser executado em um nó saudável do cluster, onde o daemon kubelet o monitorará.
- DOs manifestos dos pods incluem uma seção de metadados para descrever o pod e seus labels. Também inclui uma seção de especificações para descrever diferentes informações, como por exemplo uma lista de contêineres que serão executados no pod.
- EOs recursos são solicitados por pod, não por contêiner. No caso de dois ou mais contêineres, os recursos definidos no manifesto, que serão compartilhados pelo pod, será definido pelos maiores valores de CPU e memória. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Conceito-chave: No Kubernetes, um pod é a menor unidade de execução, e os resources (CPU/memória) são declarados por contêiner dentro da lista containers, não pelo pod como um todo. O kubelet soma os pedidos de todos os contêineres para calcular a demanda total do pod.
- (A) Incorreta: O comando
kubectl applycria ou atualiza o recurso declarado no manifesto, mas não "inicia uma única instância" de forma imperativa; ele envia a declaração ao API server, que então agenda o pod. A descrição está imprecisa, mas não é o erro central da questão. - (B) Incorreta: O comando
kubectl getlista recursos, mas a sintaxe correta ékubectl get pods --all-namespaces(sem ponto final). A alternativa tem um erro de digitação no comando, mas a intenção (listar pods) está correta. - (C) Incorreta: O agendamento é feito pelo kube-scheduler, não pelo "daemon kubelet". O kubelet apenas executa e monitora o pod no nó já designado. A alternativa mistura os papéis dos componentes.
- (D) Incorreta: A descrição está correta (metadados com labels e spec com containers), mas a banca considera que a alternativa não é a "incorreta" pedida. Ela é uma afirmativa verdadeira.
- (E) Correta: Esta é a pegadinha. A alternativa afirma que recursos são solicitados por pod e que o maior valor define o compartilhamento. Isso é falso: cada contêiner declara seus próprios
requests/limitsno camporesourcesdentro do seu item na listacontainers. O Kubernetes soma os recursos de todos os contêineres para o pod, não usa o maior valor. A banca inverteu o conceito para confundir quem não leu o manifesto com atenção.
Armadilha da banca: O distrator mais tentador é a letra E, porque parece "técnica" e plausível. O aluno que sabe que resources existe no manifesto, mas não lembra que é por contêiner, cai na pegadinha. A banca explora a confusão entre "pod" e "contêiner" — no Kubernetes, o pod é o invólucro, mas os recursos são sempre declarados individualmente para cada contêiner dentro do spec.containers[].
Fonte: FGV SEFAZ-MG 2022 - Tarde Auditor Fiscal - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.