Что такое Custom Resource Definition (CRD) в Kubernetes?
Этот вопрос проверяет понимание механизма расширения API Kubernetes с помощью пользовательских ресурсов.
Короткий ответ
CRD – это способ добавить в Kubernetes новый тип ресурса, например Database или Cache, который будет управляться пользовательским контроллером.
Длинный ответ
1. Почему нужны CRD?
- Kubernetes API ограничен стандартными объектами (Pods, Services).
- CRD позволяет создать новый ресурс с кастомной логикой.
2. Пример CRD:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: databases.example.com
spec:
group: example.com
names:
kind: Database
plural: databases
scope: Namespaced
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
version:
type: string
CRD – это инструмент для расширения API Kubernetes, позволяющий создавать новые объекты с индивидуальной логикой.