0Pricing
Kubernetes Basics · Aula

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: Backup

Definindo 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: integer

Criando 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: 7

Trabalhando 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-db

Nomes 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.schedule

CRDs 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: true

Quando 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

  1. StatefulSets para aplicações com estado
  2. DaemonSets para tarefas específicas de nós
  3. Entendendo os Operators do Kubernetes
  4. Definições de Recursos Personalizados (CRDs)
← Voltar para Kubernetes Basics