Координатор кластера
Координатор кластера - это центральный компонент Горизонтального кластера. Он служит "мозгом" кластера. Для достижения отказоустойчивости при сохранении высокой производительности Координатор кластера использует распределенное хранилище in-memory. Все изменения, вносимые в конфигурацию кластера, мгновенно реплицируются на все узлы координатора.
Основные функции координатора кластера
Общий контроль системы: Координатор кластера контролирует и наблюдает за работой всего кластера, обеспечивая его здоровье и доступность.
Распределение и выделение ресурсов: Координатор кластера управляет выделением и распределением ресурсов между основными узлами кластера. Он определяет, на каком основном узле должен быть размещен конкретный ресурс, на основе заранее определенных правил.
Контроль доступа на основе ролей: Координатор кластера обеспечивает контроль доступа на основе ролей, гарантируя, что пользователи имеют доступ только к приложениям и ресурсам, на использование которых они имеют право.
Взаимодействие с внешними реестрами арендаторов и пользователей: Координатор кластера взаимодействует с внешними реестрами для управления арендаторами и пользователями в кластере. Включение в себя аутентификации, авторизации и управления пользователями.
Предоставление данных для выставления счетов: Координатор кластера собирает данные об использовании ресурсов для выставления счетов. Текущая информация используется для создания счетов для арендаторов или мониторинга статистики использования.
Управление развертыванием приложений: Координатор кластера управляет приложениями, развернутыми в кластере. Он обрабатывает регистрацию, активацию/деактивацию и обновления приложений.
Развертывание основных узлов и их масштабирование/понижение: Координатор кластера управляет процессом развертывания основных узлов, а также операциями масштабирования, такими как добавление или удаление основных узлов из кластера для повышения производительности или отказоустойчивости. Создание и удаление узла может быть инициировано через API любой сторонней системы управления облаком (например, VMware vSphere, Microsoft Azure, Google Cloud Платформа или Amazon Web Services).
Кэш координатора
Координаторы кластера полагаются на распределенный кэш, который полностью синхронизирован между всеми узлами координатора. Текущий кэш реализован на движке распределенных баз данных Apache Ignite.
Хранилище координатора
Координатор кластера использует реляционную базу данных для хранения реестров арендаторов, субарендаторов, основных узлов, серверов приложений и логинов, областей приложений и арендаторов, ресурсов приложений и многого другого.
В большинстве случаев это хранилище также реализовано на Apache Ignite для обеспечения зеркалирования данных и балансировки нагрузки. Однако для хранения данных реестров координаторов кластеров может использоваться любая реляционная база данных.