Cloud
Pokročilý
Kubernetes CRDs — Custom Resource Definitions
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