Kubernetes API Extension
medium

Kubernetes API Extension Question #019e3a4f

Question Statement
Kubernetes API Extension
#kubernetes
#api
#crd
#custom-resource-definition
Medium

Podemos estender a API do Kubernetes com o Kubernetes API Aggregation Layer e CRDs. O que é CRD?

A

Custom Resource Definition

Correct
B

Custom Restricted Definition

C

Customized RUST Definition

D

Custom RUST Definition

Official Explanation / Community Explanations

O que é CRD?

CRD significa Custom Resource Definition. É um poderoso mecanismo de extensão da API do Kubernetes que permite aos usuários definir seus próprios recursos personalizados, estendendo a API do Kubernetes além de seus recursos integrados (como Pods, Services, Deployments).

Como Funciona

Uma Custom Resource Definition (CRD) é em si um recurso do Kubernetes (no grupo de API apiextensions.k8s.io/v1). Quando você cria uma CRD, define um novo tipo de recurso personalizado com um nome, esquema e escopo especificados (com namespace ou cluster). Uma vez que a CRD é criada, o Kubernetes gera automaticamente um endpoint RESTful para esse recurso personalizado, e você pode então criar, ler, atualizar e excluir instâncias desse recurso personalizado usando kubectl ou chamadas diretas à API. A CRD não inclui nenhuma lógica personalizada; ela apenas define a estrutura de dados. Para implementar lógica de negócios, você normalmente escreve um controlador personalizado que observa as mudanças no recurso personalizado e executa ações de acordo.

Por que a Resposta Correta está Correta

A expansão correta da sigla CRD é Custom Resource Definition. Este é o termo oficial usado na documentação e comunidade do Kubernetes. Ele descreve com precisão o propósito: definir um recurso personalizado que estende a API do Kubernetes.

Por que as Respostas Incorretas estão Erradas

  • Custom Restricted Definition: Este não é um termo reconhecido no Kubernetes. A palavra "Restricted" não aparece no contexto de CRDs. CRDs não são inerentemente restritas; elas são definidas pelo usuário e podem ser tão flexíveis quanto necessário.
  • Customized RUST Definition: Isso está incorreto porque CRDs não são específicas da linguagem de programação Rust. As CRDs do Kubernetes são independentes de linguagem e podem ser usadas com qualquer linguagem de programação para implementar controladores.
  • Custom RUST Definition: Semelhante ao anterior, isso associa incorretamente CRDs ao Rust. A sigla CRD não tem nenhuma associação com Rust.

Em resumo, CRD é um conceito fundamental para estender o Kubernetes, permitindo que os usuários definam seus próprios tipos de recursos e criem controladores personalizados para gerenciá-los.