0Pricing
Kubernetes Basics · Lezione

Custom Resource Definitions (CRD)

Impari come le Custom Resource Definitions estendono l’API di Kubernetes con i propri tipi di risorsa, la base su cui si fondano gli Operator.

Custom Resource Definitions (CRD) è una lezione Kubernetes Basics gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Kubernetes Basics, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kubernetes Basics include 4 lezioni in totale.

Estendere l'API Kubernetes

Gli oggetti integrati come Pod e Deployment non sono il limite. Con una Custom Resource Definition (CRD) può insegnare a Kubernetes tipi di risorsa completamente nuovi.

Che cos'è una Custom Resource?

Una Custom Resource (CR) è un'istanza di un tipo definito dall'utente. Dopo l'installazione di una CRD, può creare le CR con kubectl proprio come gli oggetti nativi.

Anatomia di una CRD

Una CRD dichiara il nuovo kind, il relativo gruppo API, la versione e l'ambito, con namespace o a livello di 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

Definire lo schema

Uno schema OpenAPI convalida i campi della risorsa personalizzata e rifiuta le specifiche non valide al momento della creazione.

versions:
- name: v1
  served: true
  storage: true
  schema:
    openAPIV3Schema:
      type: object
      properties:
        spec:
          type: object
          properties:
            schedule:
              type: string
            retention:
              type: integer

Creare una Custom Resource

Dopo avere applicato la CRD, può creare istanze del nuovo tipo.

apiVersion: data.example.com/v1
kind: Backup
metadata:
  name: nightly-db
spec:
  schedule: '0 2 * * *'
  retention: 7

Lavorare con le CR tramite kubectl

Le risorse personalizzate sono cittadini di prima classe. Può elencarle, descriverle ed eliminarle con comandi familiari.

kubectl get backups
kubectl describe backup nightly-db
kubectl delete backup nightly-db

Nomi brevi e colonne personalizzate

Può definire nomi brevi e colonne personalizzate della tabella per rendere più agevole lavorare con le CR.

names:
  shortNames: ['bk']
additionalPrinterColumns:
- name: Schedule
  type: string
  jsonPath: .spec.schedule

Le CRD sono solo dati

Da sola, una CRD archivia soltanto dati in etcd. Nulla agisce su di essi. Per fare in modo che un Backup venga effettivamente eseguito, serve un controller che osservi queste risorse.

Il collegamento con gli Operator

Un Operator è un controller più una o più CRD. La CRD definisce lo stato desiderato; il controller riconcilia continuamente lo stato reale per adeguarlo a quello desiderato. Le CRD sono le fondamenta su cui si basano gli Operator.

Versionare le CRD

Le CRD supportano più versioni con conversione, permettendo di far evolvere l'API. Esattamente una versione è contrassegnata come versione di archiviazione in etcd.

versions:
- name: v1beta1
  served: true
  storage: false
- name: v1
  served: true
  storage: true

Quando usare le CRD

  • Voler modellare in modo dichiarativo un concetto del dominio, come Backup, Database o Certificate
  • Costruire un Operator per automatizzare le operazioni
  • Voler permettere agli utenti di gestire l'app con workflow kubectl familiari

Verifica rapida

Verifichi la sua comprensione delle CRD.

Riepilogo

Ha imparato che le CRD estendono l'API Kubernetes con tipi personalizzati, convalidati da uno schema OpenAPI e gestiti con i normali comandi kubectl. Una CRD da sola archivia soltanto dati; associandola a un controller si ottiene un Operator che riconcilia lo stato desiderato.

Domande Frequenti

La lezione «Custom Resource Definitions (CRD)» è gratuita?

Sì — il testo completo di «Custom Resource Definitions (CRD)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Kubernetes Basics, passa a CoddyKit PRO. Il corso Kubernetes Basics include 4 lezioni in totale.

Cosa imparerò in «Custom Resource Definitions (CRD)»?

Impari come le Custom Resource Definitions estendono l’API di Kubernetes con i propri tipi di risorsa, la base su cui si fondano gli Operator. Eserciti Kubernetes Basics con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Kubernetes Basics?

Non è richiesta alcuna esperienza precedente. Kubernetes Basics su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Custom Resource Definitions (CRD)»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Kubernetes Basics?

Sì. Ogni lezione Kubernetes Basics include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. StatefulSet per app stateful
  2. DaemonSet per attività specifiche dei nodi
  3. Comprendere gli Operator di Kubernetes
  4. Custom Resource Definitions (CRD)
← Torna a Kubernetes Basics