Основные понятия
В этом разделе объясняются ключевые концепции и архитектурные принципы 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 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-сертификаты для проверки
Пример:
Ключевые моменты:
- Один 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)