Геораспределённость в контексте катастрофоустойчивости 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 поддерживает различные варианты хранилищ, выбор которых зависит от требований конкретного проекта. Подробнее о системах хранения, их особенностях и настройке — в разделе Хранение.