Blogs
Kubernetes flexibel erweitern: Eigene Ressources mit CRDs erstellen

Warum Standard-Kubernetes nicht immer ausreicht
Kubernetes ist die führende Plattform zur Orchestrierung von Containern. Doch die nativen Ressourcen wie Pods, Services und Deployments decken nicht alle Anforderungen komplexer IT-Infrastrukturen ab.
Was, wenn Unternehmen spezielle Workflows oder Compliance-Vorgaben haben, die sich mit den bestehenden Kubernetes-Ressourcen nicht direkt abbilden lassen? Custom Resource Definitions (CRDs) bieten die Lösung: Sie ermöglichen es, Kubernetes mit maßgeschneiderten Ressourcen zu erweitern – ohne den Kubernetes-Core anzupassen.
Was sind Custom Resource Definitions (CRDs)?
CRDs ermöglichen es, eigene Kubernetes-Ressourcen zu definieren, die sich wie native Kubernetes-Objekte verhalten. Diese können dann mit den gewohnten Kubernetes-Tools (kubectl
, API, Helm) verwaltet werden.
Wichtige Merkmale von CRDs
✅ Flexibilität: Unternehmen können individuelle Ressourcen für spezifische Anforderungen definieren.
✅ Integration: Custom Resources werden wie Standard-Ressourcen in Kubernetes verwaltet.
✅ Automatisierung: In Kombination mit Custom Controllers lassen sich komplexe Prozesse automatisieren.
Beispiel: Ein EasterEgg-CRD
Ein einfaches YAML-Beispiel für ein Custom Resource Definition (CRD):
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: eastereggs.kubeops.net
spec:
group: kubeops.net
versions:
- name: v1
served: true
storage: true
scope: Namespaced
names:
plural: eastereggs
singular: easteregg
kind: EasterEgg
shortNames:
- ee
Sobald dieses CRD registriert ist, können Kubernetes-Nutzer eigene EasterEgg-Ressourcen anlegen:
apiVersion: kubeops.net/v1
kind: EasterEgg
metadata:
name: example-easteregg
spec:
message: "Hello, this is an Easter Egg!"
Dieses Prinzip lässt sich auf beliebig komplexe Anwendungen übertragen – von individuellen Sicherheitsrichtlinien bis hin zur automatisierten Verwaltung von Workloads.
Wofür werden CRDs eingesetzt?
CRDs eröffnen zahlreiche Anwendungsfälle, insbesondere in regulierten und sicherheitskritischen Umgebungen.
1. Automatisierung mit Kubernetes Operators
CRDs bilden die Grundlage für Operators, die komplexe Anwendungen in Kubernetes verwalten. Beispiele:
- Automatisierte Verwaltung von Datenbanken (PostgreSQL Operator)
- Lifecycle-Management für Machine Learning-Modelle
- Steuerung von Backup- und Recovery-Prozessen
2. Sicherheits- und Compliance-Erweiterungen
Unternehmen können Kubernetes mit CRDs so erweitern, dass es Security- und Compliance-Vorgaben automatisch durchsetzt. Beispiele:
- Definieren von Netzwerk- und Zugriffskontrollen als Kubernetes-Ressourcen
- Automatisierte Sicherheitsrichtlinien für sensible Anwendungen
- Auditing-Mechanismen zur Erfüllung von NIS2- oder ISO 27001-Anforderungen
3. Branchen- und Geschäftslogik abbilden
Besonders für Unternehmen mit spezialisierten Anforderungen sind CRDs wertvoll:
- Finanzsektor: "Transaction" als benutzerdefinierte Kubernetes-Ressource
- Gesundheitswesen: "PatientRecord" für medizinische Datenverwaltung
- Industrie: "DeviceConfiguration" für IoT-Systeme
Best Practices für CRDs
Damit CRDs sicher und effizient genutzt werden, sollten folgende Best Practices eingehalten werden:
✔ Validierung mit OpenAPI-Schema
- Überprüfung der Datenstruktur, um fehlerhafte Einträge zu vermeiden.
- Verhindert inkonsistente oder unvollständige Konfigurationen.
✔ Versionierung & Abwärtskompatibilität
- CRDs sollten mehrere Versionen unterstützen (v1, v2 etc.).
- Ältere Versionen erst nach einer Übergangszeit auslaufen lassen.
✔ RBAC & Sicherheitsrichtlinien
- Rollentrennung: Wer darf CRDs erstellen, ändern oder löschen?
- Begrenzung der Sichtbarkeit über Namespaces.
✔ Monitoring & Logging
- Proaktive Überwachung von Custom Resources zur Fehleranalyse und Optimierung.
- Logs & Metriken zur Performance-Überprüfung.
✔ Subresources für bessere API-Interaktion
/status:
Trennt Statusinformationen von Konfigurationsdaten./scale
: Ermöglicht die Skalierung von Custom Resources über Kubernetes-Mechanismen.
Fazit: Kubernetes individuell erweitern – ohne Vendor Lock-in
Custom Resource Definitions bieten Unternehmen die Möglichkeit, Kubernetes an spezifische Anforderungen anzupassen, ohne auf externe Tools angewiesen zu sein. Besonders für regulierte Branchen und sicherheitskritische Umgebungen wie KRITIS, Behörden und Finanzdienstleistungen sind CRDs ein wichtiges Werkzeug, um Automatisierung, Sicherheit und Compliance direkt in Kubernetes abzubilden.