# Deployment

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

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

## Цель

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

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

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

## Время

**1–3 часа**

---

**Deployment** — stateless workloads: replicas, rolling update, rollback.

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 3
  selector:
    matchLabels: { app: web }
  strategy:
    type: RollingUpdate
    rollingUpdate: { maxSurge: 1, maxUnavailable: 0 }
  template:
    metadata:
      labels: { app: web }
    spec:
      containers:
        - name: nginx
          image: nginx:1.25
          readinessProbe:
            httpGet: { path: /, port: 80 }
```

```bash
kubectl rollout status deployment/web
kubectl rollout undo deployment/web
```

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

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

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

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

---

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

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

---

## Дальше

→ [ReplicaSet](replicaset.md)
