Questão de Sistemas Operacionais — Cloud Computing — FGV 2024
Sistemas Operacionais›Cloud Computing
Código
fg099934
Banca
FGV
Órgão
TJ-RR
Ano
2024
Nível
Superior
Cargo
Analista Judiciário - Desenvolvimento de Sistemas
No Kubernetes, há duas formas de aplicar mudanças na configuração de uma aplicação: imperativa e declarativa.Considere os dois comandos a seguir: 1: kubectl create -f exemplo.yaml 2: kubectl apply -f exemplo-deployment.yaml Nesse caso, é correto afirmar que
A1 é um exemplo de comando declarativo, em que o kubectl especifica a operação que se deseja aplicar.
B2 é um exemplo de comando imperativo, em que o kubectl especifica a operação que se deseja aplicar.
C2 é um exemplo de comando imperativo, em que o usuário não define que operações serão executadas.
D1 é um exemplo de comando declarativo, em que o sistema do Kubernetes decidirá a melhor forma de aplicá-lo.
E2 é um exemplo de comando declarativo, em que o sistema do Kubernetes decidirá a melhor forma de aplicá-lo.
Revelar gabarito e comentário▾
GabaritoE — 2 é um exemplo de comando declarativo, em que o sistema do Kubernetes decidirá a melhor forma de aplicá-lo.
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 – Comandos Imperativos vs Declarativos
Gabarito: letra E. O comando kubectl apply -f exemplo-deployment.yaml é um exemplo de abordagem declarativa, na qual o usuário especifica o estado desejado (o YAML) e o Kubernetes decide as operações necessárias para atingir esse estado. Já o kubectl create -f exemplo.yaml é um comando imperativo, que instrui diretamente a criação do recurso. A alternativa E reflete exatamente essa definição.
A banca testa o conhecimento das duas formas de gerenciamento de configuração no Kubernetes. A chave está em entender que no modo declarativo o foco está no estado final desejado, enquanto no imperativo o foco está na operação a ser executada (criar, deletar, etc.).
Afirma que o comando 1 (kubectl create) é declarativo. Na verdade, create é um comando imperativo, pois especifica diretamente a operação de criação. O erro está em classificar o comando como declarativo.
Alternativa B — ❌ Incorreta
Afirma que o comando 2 (kubectl apply) é imperativo. apply é o principal comando declarativo do Kubernetes. Ele compara o YAML fornecido com o estado atual e aplica as alterações necessárias.
Alternativa C — ❌ Incorreta
Além de classificar apply como imperativo, diz que o usuário “não define que operações serão executadas”. No modo declarativo, o usuário define o estado desejado (não as operações), mas a frase está incorreta por associar isso ao imperativo. No imperativo, o usuário define explicitamente a operação.
Alternativa D — ❌ Incorreta
Afirma que create é declarativo. Mesmo erro da alternativa A. create é imperativo.
Alternativa E — ✅ Correta ⟵ GABARITO
Correta: kubectl apply é declarativo; o Kubernetes analisa o YAML, compara com o estado atual e decide quais operações (create, patch, delete) realizar para chegar ao estado desejado. O usuário não especifica a operação, mas o estado.
NÃO CAIA NESSA!
A banca explora a confusão comum entre kubectl create e kubectl apply. Ambos aceitam um arquivo YAML, mas um é imperativo (create) e o outro declarativo (apply). Lembre-se: no imperativo você dita o que fazer (criar, deletar); no declarativo você diz como quer que fique e o sistema descobre o que fazer. Fique atento: o termo "aplicar" (apply) dá a dica de que você está aplicando uma configuração, não executando uma operação bruta.