Kubernetes (k8s) — что это простыми словами | Глоссарий FREEHOSTING

kubernetes

kubernetes — Kubernetes (k8s) — открытая платформа для оркестрации контейнеров: автоматически разворачивает, масштабирует и перезапускает контейнерные приложения на кластере серверов. Управляет десятками и тысячами узлов через единый API.

Определение простыми словами

Kubernetes — это «диспетчер» для контейнеров. Вы описываете в YAML-манифесте, какие сервисы должны работать, сколько копий каждого и какие ресурсы им нужны. Kubernetes сам выбирает свободные серверы в кластере, запускает там контейнеры, следит за их состоянием и поднимает заново, если что-то упало. Если нагрузка растёт — добавляет реплики, если падает — снимает. Администратору не нужно вручную ходить по серверам и перезапускать процессы: всё делается через kubectl или GitOps-конвейер.

Изначально проект родился в Google как переосмысление внутренней системы Borg, в 2015 году был передан в CNCF и за 8 лет стал индустриальным стандартом. Сегодня Kubernetes лежит под продуктами Spotify, Booking, Tinkoff, Сбера, Яндекса.

Сравнение

Параметр Kubernetes Docker + Compose Bare-metal с systemd
Масштаб 1–10 000+ узлов 1 узел 1 узел
Самовосстановление Автоматическое restart: always Restart= в unit-файле
Балансировка Service + Ingress Только nginx руками Только nginx руками
Порог входа Высокий Низкий Средний
Когда нужен Микросервисы, HA, мультитенант 1–5 сервисов Монолит, классика

Кейсы использования

  • Микросервисная архитектура. 20+ сервисов с разными релизными циклами — Kubernetes даёт единый rolling-update, canary и blue-green из коробки.
  • SaaS с пиковой нагрузкой. HorizontalPodAutoscaler масштабирует поды по CPU/RPS — днём 50 реплик, ночью 5.
  • Мультитенантные платформы. Namespaces + ResourceQuota изолируют клиентов на одном кластере.
  • CI/CD и preview-окружения. Каждый pull request — отдельный namespace со своим доменом.
  • Когда НЕ стоит: один лендинг, монолит, команда из 1 человека без DevOps-опыта. Кластер съест больше ресурсов, чем сами приложения, и потребует постоянной поддержки.

Технические детали

Архитектура — control plane (api-server, etcd, scheduler, controller-manager) и worker-узлы с kubelet и container runtime (Docker, containerd, CRI-O). Базовая единица — pod: один или несколько контейнеров с общей сетью и томами. Установка кластера на голой машине через kubeadm:

apt install -y kubeadm kubelet kubectl
kubeadm init --pod-network-cidr=10.244.0.0/16
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
kubectl get nodes

Под Kubernetes нужен запас ресурсов: control plane требует от 2 vCPU и 2 ГБ RAM, каждый worker — минимум 2 ГБ, иначе kubelet будет упираться в OOM. Подобрать VPS под кластер можно в каталоге, для продакшна берите минимум 3 узла, чтобы переживать падение мастера.

Частые вопросы

Чем Kubernetes отличается от Docker?

Docker запускает один контейнер на одном хосте. Kubernetes управляет группой хостов и распределяет по ним сотни контейнеров, следит за их здоровьем, балансирует трафик и автоматически масштабирует. Docker — кубик, Kubernetes — конструктор из кубиков.

Сколько ресурсов нужно для тестового кластера?

Минимум — один узел с 2 vCPU и 2 ГБ RAM на k3s или Minikube. Для боевого HA-кластера — 3 control-plane по 2 vCPU/4 ГБ и от 2 worker-узлов с запасом под рабочие поды.

Нужен ли Kubernetes небольшому проекту?

Чаще нет. Если у вас 1–5 сервисов и нет требований к нулевому даунтайму, Docker Compose покрывает задачу с меньшими накладными расходами. Kubernetes окупается с десятка сервисов или в команде 5+ инженеров.

Можно ли поставить k8s на VPS с OpenVZ?

Нет, OpenVZ не даёт нужный уровень изоляции и поддержку cgroups v2. Берите VPS на KVM, иначе kubelet не запустится корректно.