Архитектура

Содержание

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

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