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: BackupDefinire 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: integerCreare 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: 7Lavorare 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-dbNomi 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.scheduleLe 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: trueQuando 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
- StatefulSet per app stateful
- DaemonSet per attività specifiche dei nodi
- Comprendere gli Operator di Kubernetes
- Custom Resource Definitions (CRD)