# etcd — хранилище состояния

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

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

## Цель

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

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

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

## Время

**1–3 часа**

---

**etcd** — распределённое consistent key-value хранилище. Весь state Kubernetes (объекты API) живёт здесь.

### Свойства

- Raft consensus, нужен **quorum** (3 узла → выдерживает 1 падение)
- Только **apiserver** пишет в etcd напрямую
- Watch API для controllers

### Backup

```bash
ETCDCTL_API=3 etcdctl snapshot save backup.db \
  --endpoints=https://127.0.0.1:2379 \
  --cacert=ca.crt --cert=client.crt --key=client.key
```

### Encryption at rest

Secret в API — base64, **не шифрование**. Включайте `EncryptionConfiguration` для etcd.

### Инциденты

| Симптом | Причина |
|---------|---------|
| API timeout | медленный disk, compaction |
| 503 | потеря quorum |

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

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

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

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

---

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

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

---

## Дальше

→ [kube-scheduler — планировщик](kube-scheduler.md)
