Kubernetes API Extension Question #019e3a4f
Podemos estender a API do Kubernetes com o Kubernetes API Aggregation Layer e CRDs. O que é CRD?
Custom Resource Definition
Custom Restricted Definition
Customized RUST Definition
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.