Архитектура
Содержание
Введение в
() представляет собой корпоративную платформу на базе Kubernetes, которая позволяет организациям создавать, развертывать и управлять приложениями последовательно в гибридных и мультиоблачных средах. интегрирует основные возможности Kubernetes с расширенными сервисами управления, наблюдаемости и безопасности, предлагая единый контрольный уровень и гибкие кластеры для рабочих нагрузок.
Архитектура построена по модели hub-and-spoke, состоящей из global кластера и множества кластеров рабочих нагрузок. Такая конструкция обеспечивает централизованное управление при сохранении независимого выполнения и масштабирования рабочих нагрузок.
Основные архитектурные компоненты
Глобальный кластер
global кластер служит централизованным узлом управления и контроля . Он предоставляет платформенные сервисы, такие как аутентификация, управление политиками, операции жизненного цикла кластера и наблюдаемость. Также это центральный узел для управления мультикластерной средой и обеспечивает функциональность между кластерами.
Ключевые компоненты включают:
- Gateway
Выполняет роль основной точки входа в платформу. Управляет API-запросами от UI, CLI (kubectl) и инструментов автоматизации, маршрутизируя их к соответствующим backend-сервисам. - Аутентификация и авторизация (Auth)
Интегрируется с внешними Identity Providers (IdPs) для обеспечения единого входа (SSO) и контроля доступа на основе RBAC. - Веб-консоль
Предоставляет веб-интерфейс для . Взаимодействует с API платформы через gateway. - Управление кластерами
Обрабатывает регистрацию, подготовку и управление жизненным циклом кластеров рабочих нагрузок. - Сервисы
- Operator Lifecycle Manager (OLM) и плагины кластера
Управляют установкой, обновлениями и жизненным циклом операторов и расширений кластера. - Внутренний реестр образов
Предлагает встроенный репозиторий контейнерных образов с управлением доступом на основе ролей. - Наблюдаемость
Обеспечивает централизованный сбор логов, метрик и трассировки как дляglobal, так и для кластеров рабочих нагрузок. - Прокси кластера
Обеспечивает безопасную коммуникацию междуglobalкластером и кластерами рабочих нагрузок.
Кластер рабочих нагрузок
Кластеры рабочих нагрузок — это Kubernetes-среды, управляемые global кластером. Каждый кластер рабочих нагрузок запускает изолированные приложения и наследует управление и конфигурацию от центральной контрольной плоскости.
Внешние интеграции
- Identity Provider (IdP)
Поддерживает федеративную аутентификацию через стандартные протоколы (OIDC, SAML) для единого управления пользователями. - Доступ через API и CLI
Пользователи могут взаимодействовать с через RESTful API, веб-консоль или командные инструменты, такие какkubectlиac. - Балансировщик нагрузки (VIP/DNS/SLB)
Обеспечивает высокую доступность и распределение трафика к Gateway и точкам входа ingress вglobalи кластерах рабочих нагрузок.
Масштабируемость и высокая доступность
спроектирован для горизонтального масштабирования и высокой доступности:
- Каждый компонент может быть развернут с резервированием для устранения единой точки отказа.
globalкластер поддерживает управление десятками и сотнями кластеров рабочих нагрузок.- Кластеры рабочих нагрузок могут масштабироваться независимо в зависимости от нагрузки.
- Использование VIP/DNS/Ingress обеспечивает бесшовное маршрутизирование и переключение при сбоях.
Функциональная перспектива
Полный функционал () состоит из Core и расширений, основанных на двух технических стеках: Operator и Cluster Plugin.
-
Core
Минимальный поставляемый модуль , предоставляющий основные возможности, такие как управление кластерами, оркестрация контейнеров, проекты и администрирование пользователей.
- Соответствует самым высоким стандартам безопасности
- Обеспечивает максимальную стабильность
- Предлагает самый длительный жизненный цикл поддержки
-
Расширения
Расширения в стеках Operator и Cluster Plugin классифицируются на:
- Aligned – стратегия жизненного цикла с несколькими потоками поддержки, согласованная с .
- Agnostic – стратегия жизненного цикла с несколькими потоками поддержки, выпускаемая независимо от .
Подробнее о расширениях см. в разделе Extend.
Техническая перспектива
Выполнение компонентов платформы
Все компоненты платформы работают в контейнерах внутри управляющего Kubernetes-кластера (global кластер).
Архитектура высокой доступности
globalкластер обычно состоит минимум из трёх узлов контрольной плоскости и нескольких рабочих узлов- Высокая доступность etcd является ключевой для HA кластера; подробности см. в разделе Key Component High Availability Mechanisms
- Балансировка нагрузки может обеспечиваться внешним балансировщиком или собственным VIP внутри кластера
Маршрутизация запросов
- Клиентские запросы сначала проходят через балансировщик нагрузки или собственный VIP
- Запросы перенаправляются на ALB (стандартный Kubernetes Ingress Gateway платформы), работающий на выделенных ingress-узлах (или на узлах контрольной плоскости, если настроено)
- ALB маршрутизирует трафик к целевым подам компонентов согласно настроенным правилам
Стратегия реплик
- Основные компоненты работают минимум с двумя репликами
- Ключевые компоненты (например, registry, MinIO, ALB) работают с тремя репликами
Отказоустойчивость и самовосстановление
- Достигается за счёт взаимодействия kubelet, kube-controller-manager, kube-scheduler, kube-proxy, ALB и других компонентов
- Включает проверки состояния, переключение при сбоях и перенаправление трафика
Хранение данных и восстановление
- Конфигурация контрольной плоскости и состояние платформы хранятся в etcd как ресурсы Kubernetes
- При катастрофических сбоях восстановление возможно из снимков etcd
Основное / резервное аварийное восстановление
- Два отдельных
globalкластера: Primary Cluster и Standby Cluster - Механизм аварийного восстановления основан на синхронизации данных etcd в реальном времени с Primary Cluster на Standby Cluster
- В случае недоступности Primary Cluster из-за сбоя сервисы могут быстро переключиться на Standby Cluster
Механизмы высокой доступности ключевых компонентов
etcd
- Развернут на трёх (или пяти) узлах контрольной плоскости
- Использует протокол RAFT для выбора лидера и репликации данных
- Развёртывание на трёх узлах выдерживает отказ одного узла; на пяти узлах — отказ двух
- Поддерживает локальные и удалённые резервные копии снимков S3
Компоненты мониторинга
- Prometheus: несколько инстансов, дедупликация с Thanos Query и кросс-региональная избыточность
- VictoriaMetrics: кластерный режим с распределёнными компонентами VMStorage, VMInsert и VMSelect
Компоненты логирования
- Nevermore собирает логи и данные аудита
- Kafka / Elasticsearch / Razor / Lanaya развернуты в распределённом режиме с несколькими репликами
Сетевые компоненты (CNI)
- Kube-OVN / Calico / Flannel достигают HA через безсостояночные DaemonSet или компоненты контрольной плоскости с тройным реплицированием
ALB
- Оператор развернут с тремя репликами, включён выбор лидера
- Проверки состояния на уровне инстансов и балансировка нагрузки
Собственный VIP
- Высокодоступный виртуальный IP на базе Keepalived
- Поддерживает обнаружение heartbeat и переключение active-standby
Harbor
- Балансировка нагрузки на базе ALB
- PostgreSQL с Patroni HA
- Redis в режиме Sentinel
- Безсостояночные сервисы развернуты с несколькими репликами
Registry и MinIO
- Registry развернут с тремя репликами
- MinIO в распределённом режиме с кодированием с удалением, избыточностью данных и автоматическим восстановлением