Definições de Recursos Personalizados (CRDs)
Aprenda como as Definições de Recursos Personalizados estendem a API do Kubernetes com seus próprios tipos de recursos, a base sobre a qual os Operadores são construídos.
Definições de Recursos Personalizados (CRDs) é uma aula grátis de Kubernetes Basics no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kubernetes Basics, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kubernetes Basics inclui 4 aulas no total.
Estendendo a API do Kubernetes
Objetos integrados, como Pods e Deployments, não são o limite. Com uma Custom Resource Definition (CRD), você pode ensinar ao Kubernetes tipos de recursos completamente novos.
O que é um recurso personalizado
Um Custom Resource (CR) é uma instância de um tipo que você definiu. Depois que uma CRD é instalada, você cria CRs com kubectl, assim como faz com objetos nativos.
Anatomia de uma CRD
Uma CRD declara o novo tipo, seu grupo de API, sua versão e seu escopo (associado a um espaço de nomes ou a todo o cluster).
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: backups.data.example.com
spec:
group: data.example.com
scope: Namespaced
names:
plural: backups
singular: backup
kind: BackupDefinindo o esquema
Um esquema OpenAPI valida os campos do seu recurso personalizado e rejeita especificações inválidas no momento da criação.
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
schedule:
type: string
retention:
type: integerCriando um recurso personalizado
Depois que a CRD é aplicada, você cria instâncias do seu novo tipo.
apiVersion: data.example.com/v1
kind: Backup
metadata:
name: nightly-db
spec:
schedule: '0 2 * * *'
retention: 7Trabalhando com CRs por meio do kubectl
Os recursos personalizados são objetos de primeira classe. Você pode listá-los, descrevê-los e excluí-los com comandos conhecidos.
kubectl get backups
kubectl describe backup nightly-db
kubectl delete backup nightly-dbNomes curtos e colunas de impressão
Você pode definir nomes curtos e colunas personalizadas de tabela para tornar o trabalho com CRs mais agradável.
names:
shortNames: ['bk']
additionalPrinterColumns:
- name: Schedule
type: string
jsonPath: .spec.scheduleCRDs são apenas dados
Por si só, uma CRD apenas armazena dados no etcd. Nada age sobre esses dados. Para que um Backup realmente aconteça, você precisa de um controlador que observe esses recursos.
A ligação com os Operators
Um Operator é um controlador mais uma ou mais CRDs. A CRD define o estado desejado; o controlador reconcilia continuamente a realidade para que corresponda a ele. As CRDs são a base sobre a qual os Operators se apoiam.
Versionando CRDs
As CRDs são compatíveis com várias versões e conversões, permitindo evoluir sua API. Exatamente uma versão é marcada como versão de armazenamento no etcd.
versions:
- name: v1beta1
served: true
storage: false
- name: v1
served: true
storage: trueQuando usar CRDs
- Você quer modelar um conceito de domínio de forma declarativa (Backup, Database, Certificate)
- Você está criando um Operator para automatizar operações
- Você quer que os usuários gerenciem seu aplicativo com fluxos de trabalho conhecidos do kubectl
Verificação rápida
Teste sua compreensão sobre CRDs.
Recapitulação
Você aprendeu que as CRDs estendem a API do Kubernetes com tipos personalizados, validados por um esquema OpenAPI e gerenciados com comandos normais do kubectl. Uma CRD sozinha apenas armazena dados; combiná-la com um controlador produz um Operator que reconcilia o estado desejado.
Perguntas Frequentes
A aula “Definições de Recursos Personalizados (CRDs)” é grátis?
Sim — o texto completo de “Definições de Recursos Personalizados (CRDs)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kubernetes Basics, atualize para CoddyKit PRO. O curso de Kubernetes Basics inclui 4 aulas no total.
O que vou aprender em “Definições de Recursos Personalizados (CRDs)”?
Aprenda como as Definições de Recursos Personalizados estendem a API do Kubernetes com seus próprios tipos de recursos, a base sobre a qual os Operadores são construídos. Você pratica Kubernetes Basics com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Kubernetes Basics?
Nenhuma experiência prévia é necessária. Kubernetes Basics no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Definições de Recursos Personalizados (CRDs)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Kubernetes Basics?
Sim. Cada aula de Kubernetes Basics inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- StatefulSets para aplicações com estado
- DaemonSets para tarefas específicas de nós
- Entendendo os Operators do Kubernetes
- Definições de Recursos Personalizados (CRDs)