0Pricing
Kubernetes Basics · Lektion

Custom Resource Definitions (CRDs)

Lernen Sie, wie Custom Resource Definitions die Kubernetes-API um eigene Ressourcentypen erweitern – die Grundlage, auf der Operators aufbauen.

Custom Resource Definitions (CRDs) ist eine kostenlose Kubernetes Basics-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kubernetes Basics-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kubernetes Basics-Kurs umfasst insgesamt 4 Lektionen.

Die Kubernetes-API erweitern

Integrierte Objekte wie Pods und Deployments sind nicht die Grenze. Mit einer Custom Resource Definition (CRD) können Sie Kubernetes völlig neue Ressourcentypen beibringen.

Was ist eine Custom Resource?

Eine Custom Resource (CR) ist eine Instanz eines von Ihnen definierten Typs. Sobald eine CRD installiert ist, erstellen Sie CRs mit kubectl genauso wie native Objekte.

Aufbau einer CRD

Eine CRD definiert die neue Ressourcenart, ihre API-Gruppe, Version und ihren Geltungsbereich (Namespace-bezogen oder clusterweit).

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

Das Schema definieren

Ein OpenAPI-Schema validiert die Felder Ihrer Custom Resource und weist ungültige Spezifikationen bereits beim Erstellen zurück.

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

Eine Custom Resource erstellen

Nachdem die CRD angewendet wurde, erstellen Sie Instanzen Ihres neuen Typs.

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

Mit CRs über kubectl arbeiten

Custom Resources sind gleichberechtigte Ressourcen. Sie listen sie auf, beschreiben und löschen sie mit den vertrauten Befehlen.

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

Kurznamen und Druckspalten

Sie können Kurznamen und benutzerdefinierte Tabellenspalten definieren, um die Arbeit mit CRs angenehmer zu machen.

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

CRDs sind nur Daten

Eine CRD speichert selbst lediglich Daten in etcd. Nichts verarbeitet diese Daten. Damit ein Backup tatsächlich ausgeführt wird, benötigen Sie einen Controller, der diese Ressourcen überwacht.

Die Verbindung zu Operators

Ein Operator ist ein Controller zusammen mit einer oder mehreren CRDs. Die CRD definiert den gewünschten Zustand; der Controller gleicht den tatsächlichen Zustand kontinuierlich daran an. CRDs bilden die Grundlage, auf der Operators aufbauen.

CRDs versionieren

CRDs unterstützen mehrere Versionen mit Konvertierung, sodass Sie Ihre API weiterentwickeln können. Genau eine Version ist als Speicherversion in etcd gekennzeichnet.

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

Wann Sie CRDs verwenden sollten

  • Sie möchten ein Domänenkonzept deklarativ modellieren, etwa Backup, Datenbank oder Zertifikat
  • Sie entwickeln einen Operator, um Abläufe zu automatisieren
  • Sie möchten, dass Benutzer Ihre App mit vertrauten kubectl-Workflows verwalten

Kurztest

Testen Sie Ihr Verständnis von CRDs.

Zusammenfassung

Sie haben gelernt, dass CRDs die Kubernetes-API um benutzerdefinierte Typen erweitern, die durch ein OpenAPI-Schema validiert und mit normalen kubectl-Befehlen verwaltet werden. Eine CRD allein speichert lediglich Daten. Zusammen mit einem Controller entsteht ein Operator, der den gewünschten Zustand kontinuierlich abgleicht.

Häufig gestellte Fragen

Ist die Lektion „Custom Resource Definitions (CRDs)“ kostenlos?

Ja — der vollständige Text von „Custom Resource Definitions (CRDs)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kubernetes Basics-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kubernetes Basics-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Custom Resource Definitions (CRDs)“?

Lernen Sie, wie Custom Resource Definitions die Kubernetes-API um eigene Ressourcentypen erweitern – die Grundlage, auf der Operators aufbauen. Du übst Kubernetes Basics mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kubernetes Basics zu starten?

Keine Vorkenntnisse erforderlich. Kubernetes Basics auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Custom Resource Definitions (CRDs)“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kubernetes Basics-Lektion Code schreiben und ausführen?

Ja. Jede Kubernetes Basics-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. StatefulSets für zustandsbehaftete Apps
  2. DaemonSets für Node-spezifische Aufgaben
  3. Kubernetes-Operatoren verstehen
  4. Custom Resource Definitions (CRDs)
← Zurück zu Kubernetes Basics