← Назад к вопросам

Из чего состоит 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 автоматически масштабировать приложения, выполнять обновления без простоев и обеспечивать высокую доступность сервисов.