Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Kubernetes CRDs — Custom Resource Definitions

08. 06. 2020 1 Min. Lesezeit intermediate

Cloud Fortgeschritten

Kubernetes CRDs — Custom Resource Definitions

KubernetesCRDAPIExtensibility 5 Min. Lesezeit

Erweiterung der Kubernetes-API mit eigenen Resource-Typen. CRD-Definition, Validierung, Versionierung und Best Practices.

Was sind CRDs

Custom Resource Definitions erweitern die Kubernetes-API um eigene Objekttypen.

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: databases.example.com
spec:
  group: example.com
  versions:
    - name: v1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              required: [engine, version]
              properties:
                engine:
                  type: string
                  enum: [postgres, mysql, mongodb]
                version:
                  type: string
                replicas:
                  type: integer
                  minimum: 1
                  maximum: 7
                  default: 3
  scope: Namespaced
  names:
    plural: databases
    singular: database
    kind: Database
    shortNames: [db]

Verwendung einer Custom Resource

apiVersion: example.com/v1
kind: Database
metadata:
  name: orders-db
  namespace: production
spec:
  engine: postgres
  version: "16"
  replicas: 3

# kubectl get databases
# kubectl describe db orders-db

Versionierung

CRDs unterstützen mehrere Versionen mit einem Conversion Webhook.

versions:
  - name: v1
    served: true
    storage: true
  - name: v1beta1
    served: true
    storage: false
conversion:
  strategy: Webhook
  webhook:
    conversionReviewVersions: ["v1"]
    clientConfig:
      service:
        name: db-conversion
        namespace: system
        path: /convert

Zusammenfassung

CRDs sind die Grundlage der Kubernetes-Erweiterbarkeit. Sie ermöglichen die deklarative Verwaltung beliebiger Infrastruktur über kubectl und die Standard-K8s-API.

Brauchen Sie Hilfe bei der Implementierung?

Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.

Kostenlose Beratung

Teilen:

CORE SYSTEMS Team

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.