_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
References Technologies Blog Know-how Tools
About Collaboration Careers
CS EN
Let's talk

Kubernetes CRDs — Custom Resource Definitions

08. 06. 2020 1 min read intermediate

Cloud Intermediate

Kubernetes CRDs — Custom Resource Definitions

KubernetesCRDAPIExtensibility 5 min read

Rozšíření Kubernetes API vlastními resource typy. CRD definice, validace, verzování a best practices.

Co jsou CRDs

Custom Resource Definitions rozšiřují Kubernetes API o vlastní typy objektů.

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]

Usage 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

Verzování

CRDs podporují více verzí s conversion webhookem.

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

Summary

CRDs jsou základ Kubernetes extensibility. Umožňují deklarativní řízení libovolné infrastruktury přes kubectl a standardní K8s API.

Need Help with Implementation?

Our team has experience designing and implementing modern architectures. We’re happy to help.

Free Consultation

Share:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.