← Назад к вопросам
Из чего состоит Kubernetes
2.0 Middle🔥 171 комментариев
#Docker, Kubernetes и DevOps
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Из чего состоит Kubernetes
Kubernetes — это оркестрационная платформа контейнеризации, которая состоит из нескольких ключевых компонентов.
Архитектура Kubernetes
1. Control Plane (Мастер-узлы)
Отвечает за управление кластером и принятие решений:
- API Server — центральный компонент, обрабатывает все REST запросы от клиентов и других компонентов. Все изменения состояния проходят через API Server
- etcd — распределённое хранилище ключ-значение (обычно на базе Raft), где хранится вся информация о состоянии кластера (конфигурация, статус ресурсов, метаданные)
- Controller Manager — запускает различные контроллеры (ReplicaSet, Deployment, StatefulSet, DaemonSet и т.д.), которые отслеживают желаемое состояние и приводят текущее состояние к желаемому
- Scheduler — распределяет поды на рабочие узлы, учитывая требования ресурсов, ограничения, сродство и другие политики размещения
Worker Nodes (Рабочие узлы)
Выполняют контейнеризованные приложения:
- Kubelet — агент на каждом узле, следит за тем, чтобы контейнеры были запущены в подах. Взаимодействует с контейнерным runtime (Docker, containerd)
- kube-proxy — поддерживает сетевые правила на узле, обеспечивает сетевую балансировку нагрузки и маршрутизацию трафика между сервисами и подами
- Container Runtime — программное обеспечение для запуска контейнеров (Docker, containerd, CRI-O)
Ключевые ресурсы Kubernetes
- Pod — наименьшая развёртываемая единица, обычно содержит один контейнер (иногда несколько с общей сетью)
- Service — абстрактный способ предоставления сетевого доступа к подам, обеспечивает стабильный IP и DNS
- Deployment — управляет репликами подов и обеспечивает обновления приложений
- StatefulSet — для приложений, требующих стабильности и порядка (БД, message brokers)
- DaemonSet — гарантирует, что под запущен на каждом (или выбранном) узле
- ConfigMap и Secret — хранение конфигураций и чувствительных данных
Пример YAML для деплоя
apiVersion: apps/v1
kind: Deployment
metadata:
name: java-app
spec:
replicas: 3
selector:
matchLabels:
app: java-app
template:
metadata:
labels:
app: java-app
spec:
containers:
- name: app
image: my-java-app:1.0
ports:
- containerPort: 8080
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
Эта архитектура позволяет Kubernetes автоматически масштабировать приложения, выполнять обновления без простоев и обеспечивать высокую доступность сервисов.