Что такое Kubernetes?
Kubernetes (K8s) — система оркестрации контейнеров: она автоматически размещает поды на узлах кластера, перезапускает упавшие, масштабирует нагрузку и обновляет версии приложений без простоя. Kubernetes не заменяет Docker — он управляет контейнерами, которые уже упакованы в образы.
flowchart LR
subgraph control["Плоскость управления"]
API["API Server"]
Sched["Scheduler"]
CM["Controller Manager"]
end
subgraph nodes["Узлы"]
K1["kubelet + Pod"]
K2["kubelet + Pod"]
end
API --> Sched
Sched --> K1
Sched --> K2
Scheduler выбирает узел; kubelet на узле запускает контейнеры пода.
Pod, Deployment и Service
Pod — минимальная единица деплоя: один или несколько контейнеров с общей сетью и томами. Deployment декларирует желаемое число реплик и стратегию rolling update. Service даёт стабильный DNS и балансировку к набору подов, даже когда конкретные поды пересоздаются.
Декларативная модель
Вы описыете желаемое состояние в YAML (манифесты); контроллеры постоянно сравнивают фактическое состояние с целевым и исправляют расхождения. Это отличается от «зайти на сервер и перезапустить процесс вручную» — кластер сам восстанавливает сервис после сбоя узла.
apiVersion: apps/v1
kind: Deployment
metadata:
name: api
spec:
replicas: 3
selector:
matchLabels:
app: api
template:
metadata:
labels:
app: api
spec:
containers:
- name: api
image: myregistry/api:1.4.0
ports:
- containerPort: 8080
Когда Kubernetes оправдан
Для одного контейнера на VPS часто достаточно Docker Compose. K8s имеет смысл при нескольких сервисах, необходимости autoscaling, канареечных релизах и отказоустойчивости на нескольких зонах. Цена — сложность: сеть, ingress, секреты, observability нужно проектировать отдельно.
Документация: kubernetes.io.
Частые вопросы
Чем Kubernetes отличается от Docker Compose?
Compose поднимает стек на одной машине. Kubernetes управляет кластером узлов: scheduling, self-healing, масштабирование и обновления на уровне кластера.
Что такое pod в Kubernetes?
Pod — группа контейнеров с общими сетевым namespace и томами, которую Kubernetes создаёт, уничтожает и перемещает между узлами как единицу.
Нужен ли Kubernetes для небольшого проекта?
Часто нет: для MVP и одного сервера проще Docker или managed PaaS. K8s оправдан при росте числа сервисов и требованиях к отказоустойчивости.
Другие термины в теме «DevOps и облака»
Не хватает деталей?
Напишите, что уточнить по теме «Kubernetes» — это помогает улучшать материал и подсказывает, какие термины добавить дальше. Email необязателен: укажите, если хотите ответ только для вас (мы не шлём рассылки).