# CustomResourceDefinition (CRD)

← [Раздел](README.md) · [Главная](../README.md)

**Уровень:** **Middle**

## Цель

Глубоко понять **CustomResourceDefinition (CRD)**: назначение, архитектура, практика, типичные ошибки.

## Предварительно

- [11 Middle Komponenty](README.md)
- Предыдущие страницы раздела

## Время

**1–3 часа**

---

## Обзор

Расширение API собственными типами; основа Operators.

## Детали

```yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: widgets.example.com
spec:
  group: example.com
  names:
    kind: Widget
    plural: widgets
  scope: Namespaced
  versions:
    - name: v1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
```

## Типичные ошибки

- Диагностика без `kubectl describe` и Events
- Игнорирование RBAC при «permission denied»
- Путаница spec (desired) и status (actual)

## Связь с уровнями

| Уровень | Фокус |
|---------|-------|
| Junior | Что это и базовые команды |
| Middle | Интеграция с autoscaling, GitOps, observability |
| Senior | Эксплуатация control plane, SRE, DR |

---

## Самопроверка

1. Объясните CustomResourceDefinition (CRD) за 30 секунд.
2. Где компонент в архитектуре?
3. Команда диагностики?

---

## Дальше

→ [12 — Практикум](../12-middle-praktikum/README.md)
