Опубликовано: 29.07.2026

Что такое Kubernetes?

Технологии

Введение в Kubernetes

Краткая история появления Kubernetes

Изначально Kubernetes разрабатывали как внутреннюю систему в Google¹: софт назывался Project Seven. Исходный код опубликовали в 2014 году, а в 2015-м представили версию 1.02.

Какие задачи решает Kubernetes

Docker-контейнер — изолированный портативный экземпляр программного обеспечения с зависимостями. Ручное управление контейнерами накладывает такие ограничения:

  • масштабирование при растущей нагрузке;
  • размещение экземпляров контейнеров;
  • обновление контейнеров без простоя;
  • мониторинг контейнеров и инфраструктуры, состояния сети;
  • обеспечение сетевого взаимодействия и балансировки нагрузки.

Что такое Kubernetes простыми словами

Kubernetes (K8s) — это платформа для организации управления контейнерами, которая автоматизирует их развертывание, масштабирование и работу.

Отличие Kubernetes от Docker

Docker вводит стандарт по упаковке и доставке приложений. Kubernetes обеспечивает их оркестрацию.

Критерий сравненияDockerKubernetes
ФункциональностьКонтейнеризация (упаковка) приложенийОркестрация (управление контейнерами в производственной среде)
Уровень управленияКонтейнеры на одном узле (хосте)Кластеры с автоматическим распределением контейнеров по серверам
МасштабированиеВручнуюАвтоматически
ОтказоустойчивостьПри внешнем контролеАвтоматическое восстановление
Требования к разработчикам и специалистам по развертываниюПрощеСложнее, высокий порог входа

Для управления сетевым трафиком и взаимодействием микросервисов на кластере, объединения кластеров в федерации, обеспечения наблюдаемости в СберТехе используют инструмент Platform V Synapse Service Mesh.

Архитектура Kubernetes

Общая схема архитектуры кластера

Kubernetes имеет классическую клиент-серверную архитектуру. Кластер разделен на два типа узлов:

  • управляющий слой — Control Plane;
  • рабочие узлы — Worker Nodes.

Управляющий слой и его роль

Управляющий слой (Control Plane, мастер-узел) нужен для администрирования. Это мозг системы, который, в частности, включает в себя такие компоненты:

  • серверы программного интерфейса приложения (API-server);
  • планировщик (scheduler);
  • менеджер контроллеров (controller manager);
  • хранилища данных (etcd).

Рабочие узлы (Worker Nodes)

Рабочие узлы — это «мышцы» , отвечающие за выполнение задач. В их состав входят такие компоненты:

  • агент (kubelet);
  • прокси для работы с сетью (kube-proxy);
  • компонент для запуска контейнеров (container runtime).
Архитектура на примере Platform V DropApp управляющий слой Control Plane и рабочие узлы Worker Nodes.png
Архитектура на примере Platform V DropApp: управляющий слой Control Plane и рабочие узлы Worker Nodes

Основные объекты и сущности Kubernetes

Под — минимальная единица выполнения

Под (pod) — это минимальная единица развертывания. Может содержать один или несколько работающих контейнеров, объединенных в группу.

Развертывание (Deployment) и набор реплик (ReplicaSet)

ReplicaSet — это контроллер в Kubernetes, гарантирующий работу заданного количества реплик определенного пода в момент времени. Контроллер отслеживает состояние единиц развёртывания: создает и/или удаляет их. Например, если одна сущность (Instance) не выдерживает нагрузку, разработчик может использовать ReplicaSet и указать, что нужно 5–7 сущностей. Дальше сам Kubernetes распределяет их по узлам сервера.

Deployment — это декларативное описание желаемого состояния приложения: YML-файл конфигурации, где указаны характеристики (приложение, версия, ключи).

Сервис (Service) и Точка входа (Ingress)

Service — абстракция, определяющая поды (логический набор минимальных единиц развертывания), а также политики доступа к ним.

Ingress — сущность, где создается описание конфигурации Ingress Сontroller. Приложение-контроллер Ingress обрабатывает трафик и управляет внешним доступом к службам (HTTP/HTTPS) в кластере.

Карта настроек (ConfigMap) и Секрет (Secret)

ConfigMap — объект Kubernetes, где хранятся данные конфигурации. Формат — пары «ключ — значение».

Secret — объект, в котором хранятся чувствительные данные в зашифрованном виде: пароли, ключи. Используется для того, чтобы передавать конфиденциальную информацию в поды, минимизируя риск утечек и несанкционированного доступа.

Пространство имен (Namespace)

Namespace — это способ разделить ресурсы кластера между разными пользователями. Внутри одного кластера может быть несколько изолированных друг от друга областей видимости имен объектов.

Как Kubernetes управляет контейнеризированными приложениями

Планирование и размещение подов

Планировщик (Scheduler) распределяет поды по узлам с учетом ЦПУ, RAM (наличие или отсутствие ресурсов на физическом узле сервера).

Масштабирование приложений

K8s поддерживает автоматическое горизонтальное и вертикальное масштабирование — автоскейлинг (AutoScaling).

Самовосстановление и отказоустойчивость

При падении пода восстанавливает его на этом же узле или на другом. За состоянием подов следит контроллер.

Обновления без простоя (rolling updates)

Раскатка постепенная: есть временной промежуток, позволяющий обновить систему без простоя. Механизм подразумевает, что обновляются сами поды, проходят проверку работоспособности (лайв-пробы/Liveness Probes, если есть). Затем убирается один старый под, вводится новый – и так до тех пор, пока все поды не обновятся.

Сетевое взаимодействие и хранение данных

Каждый под входит в группу сервисов и получает собственный идентификатор узла компьютерной сети (IP-адрес). Внутри Kubernetes все сервисы доступны по имени, поскольку при запуске виртуальной машины IP-адрес изменяется динамически.

Сетевая модель Kubernetes

Плоская сетевая структура работает так, что поды могут общаться друг с другом напрямую. Контейнеры внутри одного пода делят общую сеть (localhost), а каждый под в кластере имеет уникальный IP-адрес.

Обнаружение сервисов (Service Discovery)

Для поддержания сетевого взаимодействия работает протокол обнаружения сервисов (Service Discovery), который обспечиваетдинамическое разрешение имен (DNS-резолвинга). Именно благодаря Service Discovery поды находят друг друга по имени.

Постоянный том (Persistent Volumes) и запрос на постоянный том (Persistent Volume Claims)

Если контейнеру необходимо персистентное хранение в файловой системе, можно добавить данные в Persistent Volumes. Persistent Volume Claim (PVC) действует как запрос пода или пользователя на получение персистентного хранилища (Persistent Volume, PV).

Безопасность в Kubernetes

Kubernetes позволяет решить проблемы с развертыванием и управлением микросервисами. Но крупные команды и проекты с динамическими нагрузками сталкиваются и с недостатками Kubernetes: проблемами наблюдаемости и безопасности, необходимостью самостоятельной настройки сетевых политик.

Platform V DropApp — платформа оркестровки на основе Kubernetes с более чем 60 критических доработок. Инструмент предлагает ряд настроенных компонентов, позволяющих автоматизировать задачи и анализировать работу физических узлов и развернутых приложений.

Platform V DropApp содержит более 60 доработок K8s и операторов, предоставляет встроенные инструменты.png
Platform V DropApp содержит более 60 доработок K8s и операторов, предоставляет встроенные инструменты

Ролевая модель управления доступом (RBAC)

RBAC (Role-Based Access Control) в Kubernetes позволяет управлять правами доступа к API-объектам, например, подам. При этом механизм не контролирует взаимодействие сервисов друг с другом. Для управления сетевым взаимодействием нужны специальные инструменты — Istio, Linkerd и Consul.

Секреты (Secrets) и защита чувствительных данных

Сервис предусматривает Kubernetes Secrets — объекты для хранения чувствительных данных (пароли, OAuth-идентификаторы, SSH-ключи, API-ключи).

Сетевые политики (Network Policies)

Абстракция позволяет устанавливать правила взаимодействия объектов на кластере:

  • какие поды могут отправлять трафик;
  • как они взаимодействуют с внешними ресурсами;
  • какие поды могут получать трафик.

По умолчанию все поды могут беспрепятственно взаимодействовать друг с другом. Это создает определенные риски безопасности инфраструктуры. В этом случае работающие Network Policies – необходимый инструмент дополнительной изоляции и ограничения трафика.

Kubernetes в разработке и эксплуатации (DevOps) и непрерывной интеграции и доставки (CI/CD)

Интеграция с CI/CD-конвейнерами (пайплайнами)

Алгоритм работы Kubernetes описывается в конфигурационном YML-файле. Инструмент оркестровки позволяет абстрагироваться от уровня контейнеров и использовать возможности автоматизации. Kubernetes превращается в платформу для создания конвейеров CI/CD (непрерывной интеграции и непрерывного развертывания).

Kubernetes и GitOps

Для управления контейнерными приложениями по методологии GitOps компаниям доступны такие инструменты:

  • ArgoCD;
  • Jenkins X;
  • Helm operator;
  • Flux;
  • Quay;
  • Gitkube;
  • WKSctl и иные.

Для непрерывной доставки приложений в Platform V DropApp используется ArgoCD. Также доступны:

  • запуск процессов из нескольких контейнеров (Argo-workflow);
  • обновление приложений внутри кластера Kubernetes (Argo-rollout) и другие.

Преимущества и недостатки Kubernetes

Ключевые преимущества

Плюсы инструмента:

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

Сложность внедрения и эксплуатации

Использование Kubernetes часто приводит к проблеме накладных издержек (overhead): для запуска служб нужны ресурсы. Кроме этого, необходимо знать внутреннюю работу Kubernetes (сервисы, контроллеры, поды) — в противном случае есть риск проблем безопасности или нерабочего состояния кластера.

Когда стоит использовать Kubernetes, а когда нет

Каким проектам не подходитКаким проектам подходит
3–10 простых сервисовБизнес-логика распределена на десятки и более сервисов, которые взаимодействуют друг с другом
Нет требований к простою системы (или они минимальны)Простои критичны, существуют требования минимального простоя, доступности сервисов компании 99.99%
Нагрузка до 1000+ запросов в секунду (RPS)Нагрузка 10 000+ запросов в секунду (RPS), высоконагруженные системы (Highload)
Обновления приложений и сервисов редкие, происходят вручнуюНужны постоянные обновления с сохранением доступности системы (канареечные релизы), конвейером непрерывной интеграции и доставки
Сайты без высоких нагрузок, интернет-магазины, личные блогиВысоконагруженные маркетплейсы, коммерческие платформы, социальные сети и стриминговые сервисы, финансовые приложения
Инфраструктура простаяИнфраструктура сложная: облака, микросервисы, управление доступами, много репозиториев и команд

Типовые сценарии использования

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

Решение Platform V DropApp как инструмент для оркестрации контейнеров содержит более 60 критических доработок Kubernetes, которые позволяют соответствовать требованиям безопасности, надежности, доступности, производительности.

Сценарии использования Platform V DropApp.png
Сценарии использования Platform V DropApp

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

По данным Edge Delta, Kubernetes занимает до 92% рынка инструментов для оркестровки контейнеров³. В России доля пользователей достигала 54%⁴. Сегодня компании все чаще выбирают платформенный подход и отечественные решения.

Platform V DropApp обеспечивает защиту данных, гибкий перенос сервисов между инфраструктурами (из локальных сред в облако и наоборот), снижение времени выхода (time-to-market) в том числе и с использованием канареечных релизов.

С ростом и усложнением инфраструктуры возникает вопрос, как работать с распределёнными микросервисными приложениями на разных серверах и в разных ЦОДах. Для управления ими используют Platform V Synapse Service Mesh.

Итоги

Kubernetes — открытое программное обеспечение для управления контейнезированными приложениями. При всех плюсах ИТ-решение имеет минусы, которые не позволяют использовать его в крупных корпорациях и высоконагруженных сервисах.