• Русский
  • Основные понятия

    В этом разделе объясняются ключевые концепции и архитектурные принципы Hosted Control Plane. Понимание этих концепций необходимо для эффективного развертывания и управления кластерами с hosted control plane.

    Содержание

    Что вы узнаете

    • Основные понятия: фундаментальные строительные блоки, включая Management Cluster, Hosted Control Plane, Data Plane, DataStore и ключевые ресурсы Kubernetes
    • Глубокое погружение в архитектуру: подробное изучение архитектуры, принципов проектирования, потоков коммуникации и лучших практик конфигурации

    Обзор

    Alauda Hosted Control Plane вводит новую парадигму управления кластерами Kubernetes, отделяя компоненты control plane от узлов data plane. Вместо выделения физических узлов для размещения компонентов control plane, они запускаются как стандартные Kubernetes workloads на общем management cluster.

    Этот архитектурный подход обеспечивает значительные преимущества:

    • Эффективность использования ресурсов: несколько control plane используют общую инфраструктуру, снижая требования к оборудованию на 60-80%
    • Простота эксплуатации: централизованное управление всеми control plane с использованием стандартных инструментов Kubernetes
    • Быстрое развертывание: создание новых кластеров за считанные минуты без выделения специальной инфраструктуры
    • Повышенная изоляция: control plane и data plane работают независимо с лучшим разделением областей отказа
    • Большая гибкость: поддержка edge computing, гибридных облаков и мультиарендных сценариев

    Ключевые понятия в кратком виде

    ПонятиеОписание
    Management ClusterKubernetes кластер на базе Alauda Container Platform, который размещает несколько экземпляров control plane
    Hosted Control PlaneКомпоненты control plane Kubernetes (API server, controller manager, scheduler), работающие как workloads
    Data PlaneРабочие узлы в отдельной инфраструктуре, на которых запускаются приложения
    DataStoreКонфигурация внешнего etcd кластера, используемого как хранилище данных control plane
    TenantControlPlaneРесурс Kamaji, представляющий полный экземпляр control plane для одного кластера
    KonnectivityСетевой прокси, поддерживающий безопасные соединения между control plane и рабочими узлами
    Cluster APIСтандарт Kubernetes для декларативного управления жизненным циклом кластера

    Основные понятия

    Management Cluster

    Management Cluster — это Kubernetes кластер, который размещает компоненты control plane одного или нескольких рабочих кластеров. В нем запускаются все workloads control plane (API server, controller manager, scheduler) как стандартные Kubernetes деплойменты и stateful set.

    Ключевые характеристики:

    • Рабочий кластер размещается в Alauda Container Platform
    • Должен поддерживать тип сервиса LoadBalancer (например, MetalLB)
    • Размещает несколько control plane с надлежащей изоляцией
    • Требует плагины кластера: Kubeadm Provider, Hosted Control Plane, SSH Infrastructure Provider

    Сценарии использования:

    • Централизованное управление несколькими Kubernetes кластерами
    • Снижение затрат на инфраструктуру за счет совместного использования ресурсов
    • Реализация мультиарендных архитектур кластеров

    Hosted Control Plane

    Hosted Control Plane — это control plane Kubernetes, который запускается как workloads внутри management cluster, а не на выделенных узлах. Каждый hosted control plane состоит из:

    • API Server: доступен через сервис LoadBalancer
    • Controller Manager: управляет ресурсами кластера
    • Scheduler: планирует поды на рабочих узлах
    • Konnectivity Server: поддерживает безопасные соединения с рабочими узлами

    Control plane полностью отделен от data plane, что позволяет независимо масштабировать, обновлять и управлять им.

    Преимущества:

    • Эффективное использование ресурсов за счет общей инфраструктуры
    • Быстрое развертывание кластеров
    • Упрощенные обновления control plane
    • Лучшее разделение областей отказа

    Data Plane

    Data Plane состоит из рабочих узлов, на которых запускаются реальные workloads (приложения, сервисы, поды). В архитектуре hosted control plane data plane полностью отделен от control plane.

    Характеристики:

    • Рабочие узлы могут находиться в разных сетях или физических локациях
    • Подключаются к control plane через агенты Konnectivity
    • Масштабируются независимо от control plane
    • Используют стандартные компоненты Kubernetes (kubelet, kube-proxy, CNI)

    DataStore

    DataStore — это кастомный ресурс Kubernetes, который определяет backend хранения данных control plane. Он настраивает подключение к внешнему etcd кластеру, в котором хранятся все объекты Kubernetes API для одного или нескольких hosted control plane.

    Конфигурация включает:

    • Эндпоинты etcd кластера (несколько для высокой доступности)
    • TLS-сертификаты для безопасного соединения
    • CA-сертификаты для проверки

    Пример:

    apiVersion: kamaji.clastix.io/v1alpha1
    kind: DataStore
    metadata:
      name: default-datastore
    spec:
      driver: etcd
      endpoints:
        - etcd-0.etcd.cpaas-system.svc.cluster.local:2379
        - etcd-1.etcd.cpaas-system.svc.cluster.local:2379
        - etcd-2.etcd.cpaas-system.svc.cluster.local:2379
      tlsConfig:
        certificateAuthority: ...
        clientCertificate: ...

    Ключевые моменты:

    • Один DataStore может обслуживать несколько hosted control plane
    • В текущем релизе поддерживается только драйвер etcd
    • Для использования в продакшене требуется TLS-конфигурация

    TenantControlPlane

    TenantControlPlane (управляется Kamaji) представляет собой полный control plane Kubernetes для одного кластера. Он создается автоматически при создании ресурса KamajiControlPlane и управляет:

    • Репликами деплойментов control plane
    • Сервисными эндпоинтами и LoadBalancer
    • Сертификатами и секретами
    • Дополнительными компонентами (CoreDNS, kube-proxy, Konnectivity)

    Информация о статусе:

    • Версия Kubernetes
    • Эндпоинт control plane (IP LoadBalancer)
    • Статус готовности
    • Ссылка на секрет kubeconfig
    • Связанный DataStore

    Ресурсы Cluster API

    Hosted Control Plane построен на основе Cluster API (CAPI) — проекта Kubernetes для декларативного управления кластерами. Основные ресурсы CAPI включают:

    Cluster

    Определяет Kubernetes кластер, включая сетевую конфигурацию (pod CIDR, service CIDR) и ссылки на ресурсы control plane и инфраструктуры.

    KamajiControlPlane

    Определяет конфигурацию hosted control plane, включая:

    • Версию Kubernetes
    • Количество реплик control plane
    • Ссылку на DataStore
    • Конфигурации дополнений (CoreDNS, kube-proxy, Konnectivity)
    • Тип сетевого сервиса (LoadBalancer)

    SSHCluster

    Определение инфраструктурного кластера для SSH-базированного развертывания, включая:

    • Конфигурацию контейнерного реестра
    • Выбор сетевого плагина (Calico)
    • Конфигурацию LoadBalancer

    MachineDeployment

    Управляет набором рабочих узлов декларативно, аналогично Deployment для подов. Включает:

    • Количество реплик
    • Ссылку на шаблон машины
    • Ссылку на конфигурацию bootstrap
    • Указание версии

    SSHHost

    Представляет физическую или виртуальную машину с доступом по SSH. Определяет:

    • IP-адрес и SSH-порт
    • Учетные данные для аутентификации
    • Политику повторного использования (очистка и повторное использование после удаления)

    Konnectivity

    Konnectivity — это решение для сетевого подключения, поддерживающее безопасные соединения между control plane (в management cluster) и рабочими узлами (в data plane). Состоит из:

    • Konnectivity Server: работает в подах control plane
    • Konnectivity Agent: запускается как DaemonSet на рабочих узлах

    Назначение:

    • Обеспечивает связь API server с kubelet на рабочих узлах
    • Поддерживает операции exec, логи и port-forward для подов
    • Работает через сетевые границы и файрволы
    • Использует защищенный туннель с TLS-аутентификацией

    Container Runtime

    Container Runtime отвечает за запуск контейнеров на рабочих узлах. Hosted Control Plane в настоящее время поддерживает:

    • Containerd 1.7.27-4: индустриальный стандарт контейнерного рантайма

    Конфигурация:

    • Указывается в ресурсе SSHMachineTemplate
    • Автоматически устанавливается на рабочих узлах при развертывании
    • Поддерживает аутентификацию в приватных реестрах

    Сетевая конфигурация

    Сетевая конфигурация определяет диапазоны IP-адресов, используемые компонентами кластера:

    Pod CIDR

    Диапазон IP-адресов, выделяемый для сетевого взаимодействия подов. Каждый под получает IP из этого диапазона.

    Требования:

    • Не должен пересекаться с pod CIDR management cluster
    • Не должен пересекаться с service CIDR
    • Типичный формат: 10.x.0.0/16

    Service CIDR

    Диапазон IP-адресов, выделяемый для сервисов Kubernetes. Каждый сервис получает cluster IP из этого диапазона.

    Требования:

    • Не должен пересекаться с service CIDR management cluster
    • Не должен пересекаться с pod CIDR
    • Типичный формат: 10.x.0.0/16

    Сетевой плагин

    В настоящее время поддерживается Calico, который обеспечивает:

    • Сетевое взаимодействие pod-to-pod
    • Применение сетевых политик
    • Управление IP-адресами (IPAM)