Открыть сервисСервис

Kubernetes — система оркестрации контейнеров

Kubernetes (часто сокращается как K8s) — открытая платформа оркестрации контейнеров, предназначенная для автоматизированного развёртывания, масштабирования и управления контейнеризированными приложениями. Относится к классу систем управления кластерами и работает поверх среды контейнеризации (чаще всего Docker или containerd). Разрабатывается сообществом под эгидой Cloud Native Computing Foundation (CNCF), исходный код распространяется под лицензией Apache 2.0.

История

Проект создан в компании Google в 2014 году на основе внутренней системы управления контейнерами Borg, эксплуатировавшейся с середины 2000-х. Название происходит от греческого слова «кибернетика» — «искусство управления». В июне 2014 года Google передала Kubernetes в фонд CNCF. Версия 1.0 вышла 21 июля 2015 года. К 2018 году Kubernetes стал де-факто стандартом оркестрации: его поддержку ввели крупнейшие облачные провайдеры — Amazon (EKS), Microsoft (AKS), Google (GKE) и другие. В 2020-х вокруг проекта сформировалась крупная экосистема инструментов: Helm, Prometheus, Istio, операторы.

Архитектура

Кластер Kubernetes состоит из управляющего слоя (control plane) и рабочих узлов (nodes).

Управляющий слой включает:

  • kube-apiserverцентральный компонент, принимающий REST-запросы и служащий точкой входа для всех операций;
  • etcd — распределённое хранилище состояния кластера;
  • kube-schedulerпланировщик, назначающий поды на узлы;
  • kube-controller-manager — набор контроллеров, поддерживающих заданное состояние.

Рабочий узел содержит:

  • kubelet — агент, управляющий контейнерами на узле;
  • kube-proxy — сетевой прокси;
  • среду контейнеризации (containerd, CRI-O).

Основные объекты

ОбъектНазначение
PodМинимальная единица развёртывания, один или несколько контейнеров
DeploymentДекларативное управление репликами подов и их обновлением
ServiceСтабильная точка доступа к группе подов
ConfigMap / SecretХранение конфигураций и чувствительных данных
NamespaceЛогическое разделение ресурсов кластера
IngressУправление внешним HTTP/HTTPS-доступом

Управление ведётся декларативно: пользователь описывает желаемое состояние в YAML-манифестах, а система автоматически приводит кластер к этому состоянию.

Принцип работы

Kubernetes использует модель контроллеров и цикл согласования (reconciliation loop). Каждый контроллер непрерывно сравнивает текущее состояние с желаемым и вносит изменения. При отказе пода контроллер пересоздаёт его; при росте нагрузки Horizontal Pod Autoscaler увеличивает число реплик. Такая архитектура обеспечивает самовосстановление и отказоустойчивость.

Применение

Kubernetes применяется для:

  • развёртывания микросервисных архитектур;
  • организации CI/CD-конвейеров;
  • запуска stateless- и stateful-приложений;
  • гибридных и мультиоблачных инфраструктур;
  • платформ машинного обучения (Kubeflow).

В России платформа используется в банках, телеком-компаниях и государственных проектах; существуют отечественные дистрибутивы и платформы на её основе, включённые в реестр российского ПО.

Преимущества и ограничения

Преимущества: переносимость между облаками и локальными средами, автоматическое масштабирование, высокая доступность, развитая экосистема, декларативное управление.

Ограничения: высокая сложность освоения и эксплуатации, значительные требования к квалификации персонала, накладные расходы на небольших проектах, необходимость тщательной настройки безопасности и сетевых политик.

Критика

Kubernetes критикуют за избыточность для малых команд и приложений, быструю смену версий и устаревание API, сложность диагностики сбоев и высокий порог входа. Часть специалистов отмечает, что платформа требует выделенной команды сопровождения, что делает её экономически неоправданной в ряде сценариев.

Альтернативы

Существуют более простые решения: Docker Swarm, HashiCorp Nomad, Apache Mesos (исторически). В облачных средах применяются управляемые сервисы, снимающие часть административной нагрузки.

Источники: документация Kubernetes, материалы Cloud Native Computing Foundation, публикации Google о системе Borg, технические обзоры CNCF.

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru