Архитектура
Содержание
Функциональная перспектива
() включает в себя полный набор функций, состоящий из 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: достигают высокой доступности через безсостояночные DaemonSet или компоненты управляющей плоскости с тройной репликацией
ALB
- Operator развернут с тремя репликами, включён выбор лидера
- Проверки состояния на уровне инстансов и балансировка нагрузки
Собственный VIP
- Виртуальный IP высокой доступности на базе Keepalived
- Поддерживает обнаружение heartbeat и переключение active-standby
Harbor
- Балансировка нагрузки на базе ALB
- PostgreSQL с Patroni для HA
- Redis в режиме Sentinel
- Безсостояночные сервисы развернуты с несколькими репликами
Registry и MinIO
- Registry развернут с тремя репликами
- MinIO в распределённом режиме с кодированием с удалением, избыточностью данных и автоматическим восстановлением