# kube-scheduler — планировщик

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

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

## Цель

Глубоко понять **kube-scheduler — планировщик**: назначение, архитектура, практика, типичные ошибки.

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

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

## Время

**1–3 часа**

---

**Scheduler** назначает Pod **ноде** (`spec.nodeName`), если она ещё не задана.

### Алгоритм

1. **Filtering** — нода подходит? (ресурсы, taints, affinity, PVC topology)
2. **Scoring** — ранжирование подходящих
3. **Binding** — patch Pod через API

### Пример Pending

Pod requests: 8 CPU, на всех нодах свободно 4 CPU → **Pending** (смотрите Events).

### Связанные поля Pod

- `nodeSelector`, `affinity` / `anti-affinity`
- `tolerations` для tainted nodes
- `topologySpreadConstraints` (middle+)

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

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

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

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

---

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

1. Объясните kube-scheduler — планировщик за 30 секунд.
2. Где компонент в архитектуре?
3. Команда диагностики?

---

## Дальше

→ [kube-controller-manager](kube-controller-manager.md)
