Геораспределённость в контексте катастрофоустойчивости Deckhouse Kubernetes Platform (DKP) — архитектурный подход, обеспечивающий непрерывную работу кластера за счёт распределения его компонентов по нескольким зонам доступности (Multi-AZ) или регионам (Multi-Region). Такой подход минимизирует риски аварий различных масштабов.
При реализации геораспределённости важно обеспечить сетевую связанность между узлами кластера. Эту задачу решает администратор платформы.
Использование нескольких зон доступности (Multi-AZ)
DKP предоставляет возможность распределения узлов кластера по зонам доступности. Это повышает устойчивость приложений к сбоям на уровне инфраструктуры и обеспечивает их работоспособность даже при недоступности одной из зон в ЦОДе или облаке.
Зона доступности (Availability Zone, AZ) — базовая единица катастрофоустойчивой архитектуры. Она представляет собой логическую группу из одного или нескольких ЦОДов, расположенных на расстоянии нескольких километров друг от друга. AZ можно рассматривать как изолированную единицу (виртуальный дата-центр), хотя физически это распределённая инфраструктура. Зоны доступности входят в состав регионов.
Характеристики зон доступности
Зоны доступности обладают следующими характеристиками:
- разнесение ЦОДов внутри одной AZ на достаточное расстояние (обычно ≤10 км) для защиты от локальных инцидентов (наводнение, пожар) при сохранении низкой сетевой задержки;
- независимое электроснабжение для компонентов, образующих зону доступности (разные электрические подстанции, дизель-генераторы и т.д.);
- использование компонентами зоны разных провайдеров и маршрутов;
- относительно низкая задержка внутри зоны.
Распределение узлов по зонам
В большинстве облачных провайдеров распределение по зонам происходит автоматически. При работе вне облаков администратору необходимо вручную маркировать узлы с помощью лейблов, указывающих зону.
Процесс маркировки узлов лейблами и их добавления в группы описан в разделе Управление узлами.
Использование нескольких регионов (Multi-Region)
DKP поддерживает распределение узлов кластера по разным регионам. Это даёт возможность приложениям продолжать работу даже при выходе из строя целого ЦОДа или облака.
Регион (Region) — независимая географическая область, включающая несколько (обычно не менее трёх) изолированных зон доступности (AZ). Все зоны региона объединены в единую логическую инфраструктурную единицу с общими сервисами управления. Регион — ключевой элемент глобальной распределённой архитектуры облачных провайдеров.
Использование нескольких регионов (Multi-Region) обычно подходит только для ситуаций, когда приложения могут функционировать в каждом регионе автономно (не обращаясь к другим регионам). Это обусловлено относительно высокой задержкой (Latency) между регионами. Например, размещение кеширующих серверов для CDN или узлов распределённого мониторинга.
Характеристики регионов
Регионы обладают следующими характеристиками:
- Разница в задержке внутри региона и между регионами. Если внутри региона задержка при передаче данных от AZ до AZ может составлять около 5 мс, то между регионами — от 50 до 200 мс.
- Географическая удалённость. Регионы могут быть существенно удалены друг от друга (например, расстояние между
europe-west3
(Франкфурт) иus-east-1
(Вирджиния) — ~6500 км). - Физическая безопасность. Провайдеры стараются размещать регионы вне зон сейсмической или политической нестабильности.
- Энергетическая избыточность. Регионы, как правило, подключаются к нескольким национальным энергосетям (например,
me-central-1
(ОАЭ) использует 4 независимых источника).
Распределение узлов по разным регионам
Для распределения узлов по регионам необходимо:
- маркировать каждый узел лейблом, указывающим регион;
- обеспечить стабильные каналы связи между регионами.
Процесс маркировки узлов лейблами и их добавления в группы узлов описан в разделе Управление узлами.
Балансировка входящего трафика
В геораспределённом кластере балансировка трафика может быть организована средствами облачного провайдера, а также средствами внутреннего балансировщика (например, MetalLB). Конкретная реализация зависит от инфраструктуры и настраивается администратором. Дополнительные сведения о вариантах балансировки и их настройках — в разделе Сеть.
Организация хранилища
Организацию и настройку систем хранения данных в геораспределённом кластере выполняет администратор. DKP поддерживает различные варианты хранилищ, выбор которых зависит от требований конкретного проекта. Подробнее о системах хранения, их особенностях и настройке — в разделе Хранение.