Архитектура
Содержание
Функциональная перспектива
() включает в себя полный набор функций, состоящий из Core и расширений, основанных на двух технических стеках: Operator и Cluster Plugin.
-
Core
Минимальная поставляемая единица , обеспечивающая основные возможности, такие как управление кластерами, оркестрация контейнеров, проекты и администрирование пользователей.
- Соответствует самым высоким стандартам безопасности
- Обеспечивает максимальную стабильность
- Предлагает самый длительный жизненный цикл поддержки
-
Расширения
Расширения в стеках Operator и Cluster Plugin можно классифицировать следующим образом:
- Aligned – стратегия жизненного цикла, состоящая из нескольких потоков поддержки, синхронизированных с .
- Agnostic – стратегия жизненного цикла, состоящая из нескольких потоков поддержки, выпускаемых независимо от .
Подробнее о расширениях см. в разделе Extend.
Перспектива развертывания
состоит из global
кластера и одного или нескольких кластеров нагрузки.
-
global
Кластер
- Центральный узел для управления мультикластерной средой
- Все кластеры должны быть зарегистрированы в
global
перед управлением ими
- Хостит функциональность мультикластерного и кросс-кластерного взаимодействия
- Kubernetes развёрнут и управляется платформой
-
Кластер нагрузки
- Хостит пользовательские нагрузки и сервисы
- Kubernetes может быть развернут платформой или предоставлен сторонними поставщиками
- Поддерживает Kubernetes-сервисы от основных облачных провайдеров, а также кластеры Kubernetes, соответствующие CNCF
- В некоторых сценариях
global
кластер может также хостить бизнес-нагрузки
Техническая перспектива
Выполнение компонентов платформы
Все компоненты платформы работают в контейнерах внутри кластера управления 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
- Operator развёрнут с тремя репликами, включён выбор лидера
- Проверки здоровья на уровне экземпляров и балансировка нагрузки
Самостоятельно созданный VIP
- Высокодоступный виртуальный IP на базе Keepalived
- Поддерживает обнаружение heartbeat и переключение active-standby
Harbor
- Балансировка нагрузки на базе ALB
- PostgreSQL с Patroni HA
- Redis в режиме Sentinel
- Безсостоянные сервисы развёрнуты с несколькими репликами
Registry и MinIO
- Registry развёрнут с тремя репликами
- MinIO в распределённом режиме с кодированием с удалением ошибок, избыточностью данных и автоматическим восстановлением