Архитектура

Содержание

Функциональная перспектива

() включает в себя полный набор функций, состоящий из 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 в распределённом режиме с кодированием с удалением, избыточностью данных и автоматическим восстановлением