Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Kubernetes CRDs — Custom Resource Definitions

01. 01. 2024 1 min čtení intermediate

Cloud Pokročilý

Kubernetes CRDs — Custom Resource Definitions

KubernetesCRDAPIExtensibility 5 min čtení

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]

Použití 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

Shrnutí

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

Potřebujete pomoct s implementací?

Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.

Nezávazná konzultace