hostprofi.ru
Подобрать хостинг
Термин

Kubernetes (k8s)

краткое определение

Система оркестрации контейнеров от Google для автоматизации деплоя, масштабирования и управления приложениями.

Kubernetes (k8s) — система оркестрации контейнеров с открытым исходным кодом. Автоматизирует деплой, масштабирование и управление контейнеризованными приложениями. k8s — сокращение: 8 букв между K и s.

Как работает

Kubernetes управляет кластером узлов — физических или виртуальных машин. Control Plane (мастер-узел) принимает решения: где запустить контейнер, как перераспределить нагрузку при отказе, когда масштабировать. Worker nodes выполняют команды — запускают контейнеры через containerd.

Компоненты Control Plane: kube-apiserver (REST API для всех операций), etcd (хранилище состояния кластера), kube-scheduler (выбирает узел для Pod), kube-controller-manager (управляет репликами и ресурсами).

Ключевые абстракции

Pod
Минимальная единица деплоя. Один или несколько контейнеров с общей сетью и хранилищем. Контейнеры в Pod общаются через localhost.
Deployment
Управляет репликами Pod. Обеспечивает rolling update без простоя и откат при ошибке.
Service
Стабильный сетевой адрес для группы Pod. Балансирует трафик между репликами независимо от их IP.
ConfigMap / Secret
Хранение конфигурации и секретов отдельно от образа контейнера.
PersistentVolume
Абстракция хранилища для stateful-приложений — баз данных, файловых хранилищ.
Ingress
Маршрутизация HTTP/HTTPS-трафика на сервисы по доменному имени и пути URL.

История

Google открыл Kubernetes в 2014 году на основе внутренней системы Borg, которая управляла миллиардами контейнеров в Google с 2003 года. В 2016 году проект передан в Cloud Native Computing Foundation (CNCF). К 2024 году k8s стал стандартом оркестрации: его используют AWS (EKS), Google (GKE), Microsoft (AKS), Yandex Cloud и Selectel.

Деплой приложения

# Создать Deployment (3 реплики nginx)
kubectl create deployment nginx --image=nginx:1.25 --replicas=3

# Проверить статус
kubectl get pods
kubectl get deployments

# Обновить образ (rolling update)
kubectl set image deployment/nginx nginx=nginx:1.26

# Откат
kubectl rollout undo deployment/nginx

# Масштабирование
kubectl scale deployment/nginx --replicas=5

Helm и управление приложениями

Helm — пакетный менеджер для Kubernetes. Позволяет устанавливать сложные приложения одной командой: helm install my-db bitnami/postgresql. Chart описывает все k8s-ресурсы приложения с параметризованными шаблонами.

На что обращать внимание

Kubernetes сложен в настройке и эксплуатации. Минимальный кластер требует три master-узла для высокой доступности. Для небольших проектов (до 10 сервисов) Docker Compose или Coolify проще и дешевле. Managed k8s (EKS, GKE, YandexCloud MK8s) снимают операционную нагрузку по управлению Control Plane, но стоят дороже самостоятельного развёртывания.

Мониторинг кластера

Встроенный kubectl top nodes и kubectl top pods показывает потребление CPU и RAM. Полноценный мониторинг строится на стеке Prometheus + Grafana — устанавливается через Helm chart kube-prometheus-stack. Алерты на исчерпание ресурсов и падение Pod настраиваются в Alertmanager.

Другие термины