Kubernetes Fundamentals
medium

Kubernetes Fundamentals Question #019e3a4f

Question Statement
Kubernetes Fundamentals
#kubernetes
#yaml
#api-version
#kind
#metadata
Medium

Quais campos devem existir em qualquer arquivo de objeto Kubernetes (por exemplo, YAML)?

A

apiVersion, kind, metadata

Correct
B

kind, namespace, data

C

apiVersion, metadata, namespace

D

kind, metadata, data

Official Explanation / Community Explanations

Toda definição de objeto Kubernetes em YAML ou JSON deve incluir três campos obrigatórios: apiVersion, kind e metadata. O campo apiVersion especifica a versão da API usada para o objeto (por exemplo, v1, apps/v1). O campo kind identifica o tipo de objeto (por exemplo, Pod, Deployment, Service). O campo metadata contém dados que identificam exclusivamente o objeto, como name, namespace, labels e annotations. Sem esses três campos, o servidor da API Kubernetes não pode processar a definição do objeto.

Como Funciona
Quando você envia um manifesto de objeto Kubernetes para o servidor da API, o servidor valida o manifesto contra o esquema esperado. O apiVersion informa ao servidor qual grupo e versão da API usar para desserialização. O kind informa ao servidor qual tipo de recurso criar ou modificar. O metadata fornece a identidade e informações descritivas opcionais. Todos os outros campos, como spec ou data, são específicos do tipo de objeto e não são universalmente obrigatórios.

Por que a Resposta Correta está Correta
A combinação apiVersion, kind e metadata é o conjunto mínimo exigido pela API Kubernetes. Por exemplo, um manifesto simples de Pod deve incluir:

apiVersion: v1
kind: Pod
metadata:
name: my-pod

Sem qualquer um deles, o servidor da API retorna um erro.

Por que as Respostas Incorretas estão Erradas

  • A combinação kind, namespace, data está incorreta porque namespace é opcional (padrão é default se omitido) e data não é um campo obrigatório para todos os objetos (é específico para objetos como ConfigMaps e Secrets).
  • A combinação apiVersion, metadata, namespace está incorreta porque kind está faltando; o servidor da API não pode determinar o tipo de objeto sem ele.
  • A combinação kind, metadata, data está incorreta porque apiVersion está faltando; o servidor da API não pode determinar qual versão da API usar para desserialização, e data não é universalmente obrigatório.