Перейти до вмісту

Модуль 4.2: Мультикластерні та мультирегіональні архітектури

Складність: [COMPLEX] | Час на виконання: 3 год | Передумови: Модуль 4.1 (Керований vs Власний Kubernetes)

Чому цей модуль важливий

Розділ «Чому цей модуль важливий»

У жовтні 2021 року Facebook (нині Meta) зник з інтернету на шість годин. Одна помилкова команда в налаштуваннях мережевих роутерів відключила всі дата-центри компанії одночасно. 3.5 мільярда людей втратили доступ до Facebook, Instagram та WhatsApp. Компанія втратила $65 мільйонів доходу, а її акції впали на 5%.

Головна причина була не в “поломці заліза”, а в архітектурі: у Facebook був один гігантський “мозок” керування, який міг дотягнутися до всіх регіонів світу. Не було ізоляції. Один збій став глобальним.

Цей модуль навчить вас будувати системи, де таке неможливо. Ви навчитеся думати “доменами відмови” (failure domains), розподіляти навантаження між регіонами та країнами, синхронізувати дані на великих відстанях і будувати архітектури, де найгірший сценарій — це уповільнення роботи в одному регіоні, а не смерть усього сервісу.


Домени відмови: Фундамент стійкості

Розділ «Домени відмови: Фундамент стійкості»

Перед тим як будувати мультикластер, треба зрозуміти, від чого ми захищаємося.

РівеньЩо ламаєтьсяРадіус ураженняЯк лікується
PodПрограма (bug)Один контейнерKubernetes перезапускає под
NodeСервер (hardware)Всі поди на серверіПоди переїжджають на інші сервери
Zone (AZ)Дата-центр (power)Вся інфраструктура в AZПоди в інших AZ працюють далі
ClusterK8s API (etcd error)Весь кластерТрафік перемикається на ІНШИЙ кластер
RegionРегіон (natural disaster)Вся хмара в регіоніТрафік іде в ІНШИЙ регіон (напр. з США в Європу)

Запам’ятайте: Мульти-AZ захищає від пожежі в дата-центрі, але не захищає від помилки адміна, який видалив увесь кластер. Для цього потрібен мультикластер.


Глобальна маршрутизація трафіку

Розділ «Глобальна маршрутизація трафіку»

Коли у вас є кластери в різних частинах світу, як направити користувача до правильного?

  1. DNS-based (Route 53, Google Cloud DNS): Користувач питає адресу сайту, і DNS каже: “ти в Лондоні — іди на IP європейського кластера”.
    • Плюс: Просто і дешево.
    • Мінус: Кешування DNS. Якщо регіон впаде, користувачі ще 5-10 хвилин будуть намагатися туди зайти.
  2. Anycast IP (Global Load Balancer): Ви даєте одну IP-адресу на весь світ. Мережа Google або Amazon сама направить пакет до найближчого здорового кластера.
    • Плюс: Миттєве перемикання (failover) за 10-30 секунд.
    • Мінус: Дорого.

Робота з даними в різних регіонах (CAP теорема)

Розділ «Робота з даними в різних регіонах (CAP теорема)»

Це найскладніша частина. Ви не можете мати все одночасно:

  • Consistency (Узгодженість): Дані скрізь однакові.
  • Availability (Доступність): Сайт працює, навіть якщо зв’язок між регіонами розірвано.

Патерни для баз даних:

  • Primary + Read Replicas: Пишемо тільки в США, читаємо скрізь. (Найпростіший спосіб).
  • Multi-Master: Пишемо і в США, і в Європі. Дуже складно синхронізувати, можливі конфлікти (напр. два юзери купили останній товар одночасно).
  • Consensus (Spanner, CockroachDB): База сама домовляється між регіонами. Повільніше на запис, але максимально надійно.

GitOps у масштабі: Управління флотом

Розділ «GitOps у масштабі: Управління флотом»

Коли у вас 10 чи 50 кластерів, ви не можете деплоїти в них вручну. Використовуйте ArgoCD ApplicationSets. Ви описуєте один шаблон додатка, а ArgoCD сам створює 50 копій у всіх ваших кластерах по всьому світу. Якщо ви зміните код у Git — він оновиться всюди одночасно (або по черзі, якщо ви так налаштуєте).


ПомилкаЧому це стаєтьсяЯк виправити
Мультирегіон для всього”Ми хочемо максимальну надійність”Це у 3 рази дорожче. Робіть мультирегіон тільки для критичних сервісів
Однаковий конфиг усюди”Кластери мають бути ідентичні”В кожному регіоні різні ціни, типи серверів та затримки. Використовуйте Kustomize Overlays
Один ArgoCD на всю планетуЗручно бачити все в одному вікніЦе єдина точка відмови. Якщо цей ArgoCD впаде — ви не зможете оновити жоден кластер
Ігнорування ціни трафікуПередача даних між регіонами дорогаПроєктуйте додатки так, щоб вони спілкувалися переважно всередині свого регіону

1. У чому різниця між Multi-AZ та Multi-Region архітектурою?

Multi-AZ захищає від збоїв у межах одного міста (один дата-центр). Зв’язок між AZ дуже швидкий. Multi-Region захищає від глобальних катастроф або збоїв у всьому хмарному регіоні. Зв’язок між регіонами повільний (через океан) і дорогий.

2. Що таке CAP теорема в контексті мультирегіональних баз даних?

Вона каже, що при розриві зв’язку між регіонами ви мусите обрати: або база перестане приймати записи (Consistency), або вона прийматиме їх в обох місцях, але дані стануть різними і їх треба буде “мирити” пізніше (Availability).


Практична вправа: Дизайн Failover

Розділ «Практична вправа: Дизайн Failover»
  1. Спроектуйте схему для системи оплат:
    • Основний регіон: us-east-1.
    • Резервний: eu-west-1.
  2. Оберіть спосіб маршрутизації трафіку (DNS чи Anycast) та обґрунтуйте вибір.
  3. Визначте, як база даних буде синхронізуватися між США та Європою, щоб не втратити жодної транзакції.

Переходьте до Модуля 4.3: Інтеграція хмарного IAM для Kubernetes — ви дізнаєтеся, як надати вашим подам доступ до хмарних сервісів (S3, бази даних) без використання паролів та ключів, через нативну ідентифікацію.