В Deckhouse Kubernetes Platform (DKP) поддерживаются две схемы межкластерного взаимодействия:
Обе схемы могут быть реализованы средствами Istio (модуль istio) или Cilium (модуль cni-cilium). Оба инструмента обеспечивают равёртывание service mesh (далее — сервис-меш) для контроля и настройки сетевых взаимодействий между приложениями внутри кластера.
Особенности использования service mesh DKP
Доступные сценарии зависят от редакции платформы.
Мультикластер и федерация доступны в редакциях Enterprise Edition (EE) и Certified Security Edition Pro (CSE Pro 1.67+).
В редакциях Community Edition (CE), Basic Edition (BE), Standard Edition (SE), Standard Edition+ (SE+) и Certified Security Edition Lite (CSE 1.67+) можно применять сервис-меш только в рамках одного кластера, например для реализации паттернов Circuit Braker, Canary Deployment и т.д.
| Сценарий использования | CE / BE / SE / SE+ / CSE Lite (1.67+) | EE | CSE Pro (1.67+) |
|---|---|---|---|
| Сервис-меш в одном кластере | + | + | + |
| Федерация | - | + | + |
| Мультикластер | - | + | + |
Отличия федерации и мультикластера
Федерация объединяет независимые (суверенные) кластеры:
- У каждого кластера собственное пространство имен и сервисов.
- Взаимодействие между кластерами настраивается явно — указывается, какие сервисы доступны извне.
Мультикластер объединяет тесно связанные кластеры:
- Используется общее пространство имён.
- Сервисы из одного кластера доступны для других, как если бы они были локальными (если это не ограничено политиками авторизации).
Модели объединения нескольких кластеров (на примере Istio)
При использовании Istio возможны различные модели объединения:
- Сетевые модели: кластеры находятся в одной или в разных сетях.
- Модели использования управляющего слоя: один или несколько управляющих слоев service mesh.
- Модели изоляции: изоляция тенантов на уровне пространств имен, сетей или кластеров.
- Модели использования сервис-мешей: один сервис-меш или несколько.
Эти параметры можно комбинировать, чтобы построить архитектуру, соответствующую требованиям конкретной инфраструктуры.
Задачи, решаемые с помощью мультикластера и федерации
Объединение кластеров в федерацию или мультикластер поможет решить следующие задачи:
- Геораспределенность и ГЕО-балансировка трафика: кластеры обслуживают пользователей ближе к их локации.
- Отказоустойчивость: при сбое работы кластера или дата-центра, трафик автоматически переключается на другие (автоматический failover).
- Горизонтальное масштабирование: распределение нагрузки между кластерами увеличивает общую производительность системы.
- Изоляция окружений и ресурсов: разные среды (production, staging, dev) могут размещаться в отдельных кластерах, при необходимости — с возможностью взаимодействия.
- Соответствие требованиям регуляторов: например, по хранению данных в определённых географических зонах.
- Создание гибридных и мульти-облачных инфраструктур: объединение кластеров, размещённых в разных средах (облако, разные провайдеры и т.д.).