Kubernetes Administration
medium

Kubernetes Administration Question #019e3a4f

Question Statement
Kubernetes Administration
#kubernetes
#api
#customresourcedefinition
#aggregation-layer
Medium

Como você pode estender a API do Kubernetes?

A

Adicionando um CustomResourceDefinition ou implementando uma camada de agregação.

Correct
B

Adicionando uma nova versão de um recurso, por exemplo v4beta3.

C

Com o comando kubectl extend api, logado como administrador.

D

Adicionando o objeto de API desejado como um parâmetro do kubelet

Official Explanation / Community Explanations

Resumo

Estender a API do Kubernetes é feito adicionando um CustomResourceDefinition (CRD) ou implementando a camada de agregação. Esses são os métodos oficiais e suportados para introduzir recursos personalizados ou estender a superfície da API.

Como Funciona

  • CustomResourceDefinition (CRD): Permite definir um novo tipo de recurso personalizado sem escrever um servidor de API completo. CRDs são construídos sobre a infraestrutura existente da API do Kubernetes e geram automaticamente endpoints RESTful para o recurso personalizado. É a maneira mais simples de estender a API.
  • Camada de Agregação: Permite estender a API do Kubernetes escrevendo seu próprio servidor de API que é agregado ao servidor de API principal. Isso é mais complexo, mas fornece controle total sobre o comportamento da API, incluindo validação personalizada, armazenamento e lógica de negócios.

Por que a Resposta Correta está Correta

Adicionar um CustomResourceDefinition ou implementar uma camada de agregação são os únicos dois métodos oficialmente documentados pelo Kubernetes para estender a API. CRDs são declarativos e não requerem programação, enquanto a camada de agregação é para casos de uso avançados que exigem um servidor de API personalizado.

Por que as Respostas Incorretas estão Erradas

  • Adicionar uma nova versão de um recurso (ex.: v4beta3): Não é um método para estender a API; é uma estratégia de versionamento para recursos existentes. Novas versões são adicionadas a recursos internos, não para estender a API com novas funcionalidades.
  • Usar o comando kubectl extend api: Este comando não existe. kubectl não possui um subcomando extend api. Estender a API é feito via manifestos YAML (CRDs) ou implantando um servidor de API separado (camada de agregação).
  • Adicionar o objeto de API desejado como um parâmetro do kubelet: O kubelet é um agente de nó que gerencia pods e contêineres. Ele não lida com extensões de API. Extensões de API são conceitos do lado do servidor gerenciados pelo servidor de API, não por parâmetros do kubelet.

Conclusão Principal

Para estender a API do Kubernetes, use CustomResourceDefinitions para simplicidade ou a camada de agregação para controle total. Evite comandos inexistentes ou configurações irrelevantes no nível do nó.