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

Модуль 7.4: AKS у продакшні — Сховища, Спостережуваність та Масштабування

Складність: [MEDIUM] | Час на виконання: 2.5 год | Передумови: Модуль 7.1 (Архітектура AKS)

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

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

У листопаді 2023 року онлайн-магазин на AKS пережив катастрофічний збій під час Чорної п’ятниці. Їхній сервіс обробки замовлень використовував диски Azure Premium SSD. Коли трафік зріс у 15 разів, диски вперлися у ліміт швидкості (IOPS), і запити почали накопичуватися в чергу. Інженери не бачили цього, бо моніторили лише CPU та пам’ять. Намагаючись врятувати ситуацію, вони збільшили кількість подів із 6 до 30. Це зробило ситуацію ще гіршою: 30 подів почали битися за той самий ліміт диска, повністю заблокувавши систему на півтори години. Збитки склали $4.2 мільйона.

Ця історія ілюструє патерн, який повторюється всюди: сховища, спостережуваність та масштабування часто вважаються другорядними речами, але саме вони стають причиною найважчих аварій. Без спостережуваності ви не знаєте, куди масштабуватися. Без правильного масштабування ви вбиваєте свої сховища.

У цьому модулі ви навчитеся обирати правильні типи дисків та файлових систем Azure, налаштуєте сучасний моніторинг через Managed Prometheus та Grafana, а також впровадите KEDA — систему, яка масштабує ваші додатки не за CPU, а за реальними бізнес-показниками (напр. кількістю замовлень у черзі).


Сховища Azure для Kubernetes: Disks vs Files

Розділ «Сховища Azure для Kubernetes: Disks vs Files»

AKS підтримує два основні типи постійних сховищ.

1. Azure Disks: Блочне сховище (RWO)

Розділ «1. Azure Disks: Блочне сховище (RWO)»

Це як USB-диск, який підключається до одного сервера за раз.

  • Premium SSD: Золотий стандарт для баз даних (1мс затримка).
  • Ultra Disk: Для надважких навантажень, де потрібна екстремальна швидкість (до 160 000 IOPS).
  • Важливо: Диски прив’язані до конкретної зони (AZ). Якщо под переїде в іншу зону — диск за ним не поїде.

2. Azure Files: Спільні папки (RWX)

Розділ «2. Azure Files: Спільні папки (RWX)»

Це мережева папка (NFS або SMB), яку можуть читати і писати сотні подів одночасно.

  • Сценарії: спільні фото користувачів, CMS (WordPress), великі набори даних для ML.
  • Плюс: Може бути гео-надлишковим (ZRS), тобто доступним у всіх зонах регіону одночасно.

Спостережуваність (Observability)

Розділ «Спостережуваність (Observability)»

Ви не можете керувати тим, чого не бачите.

  • Container Insights: Вбудована система, що збирає всі логи та метрики кластера в Log Analytics.
  • Managed Prometheus: Повністю керований сервер Prometheus. Ви отримуєте стандартну мову запитів PromQL без потреби керувати базою даних для метрик.
  • Managed Grafana: Візуалізація. Azure сам створює для вас дашборди зі здоров’ям кластера, вузлів та мережі.

KEDA: Масштабування за подіями

Розділ «KEDA: Масштабування за подіями»

Стандартний Kubernetes вміє масштабуватися тільки за CPU та пам’яттю. KEDA (Kubernetes Event-Driven Autoscaling) додає ще 60+ способів масштабування.

Чому це круто:

  • Scale to zero: Якщо в черзі порожньо — KEDA видаляє всі поди. Ви не платите за них нічого.
  • Business triggers: Масштабуйтеся за кількістю листів у черзі, запитів до бази даних або навіть часом доби.
  • Швидкість: KEDA бачить зміну в черзі миттєво, не чекаючи, поки нагріється процесор.

ПомилкаЧому це стаєтьсяЯк виправити
Забутий WaitForFirstConsumerДиск створюється раніше подаЗавжди використовуйте цей режим у StorageClass для Multi-AZ кластерів
Моніторинг тільки CPUДиск або мережа можуть бути причиною гальмДодайте метрики I/O (Disk Latency) на свої дашборди
KEDA scale-to-zero для APIДовге очікування першого запитуДля критичних API ставте minReplicaCount: 1, щоб уникнути холодного старту
Немає лімітів на логиРахунок за Log Analytics шокуєВикористовуйте фільтри у ConfigMap, щоб не слати в хмару непотрібні системні логи

1. Чому важливо використовувати Azure Files NFS для навчання моделей ML?

Тому що навчання часто потребує доступу до одних і тих самих терабайтів даних із багатьох подів одночасно. Azure Files підтримує режим ReadWriteMany та протокол NFS з опцією nconnect, що дає дуже високу швидкість читання на багатьох серверах одночасно.

2. Як KEDA допомагає економити гроші в хмарі?

Вона дозволяє видаляти поди повністю (до 0 реплік), коли немає роботи. Це тригерить автомасшабувальник вузлів, який вимикає самі сервери. В результаті ви платите рівно за той час, коли оброблялися реальні дані.


Практична вправа: Масштабування за чергою

Розділ «Практична вправа: Масштабування за чергою»
  1. Увімкніть KEDA як Add-on на вашому кластері.
  2. Створіть чергу в Azure Service Bus.
  3. Розгорніть воркер (Deployment) із 0 репліками.
  4. Налаштуйте ScaledObject, щоб запускати по 1 поду на кожні 5 повідомлень у черзі.
  5. Забийте чергу 50 повідомленнями і подивіться, як Kubernetes запустить 10 подів за лічені секунди.
  6. Очистіть чергу і перевірте, що через 2 хвилини всі поди зникли.

Ви завершили повну серію Глибокого занурення в Azure Kubernetes Service (AKS). Тепер ви володієте знаннями архітектора: від безпеки Entra ID та мереж Cilium до просунутого масштабування за подіями.

Ці навички дозволяють вам будувати платформи, які не просто працюють, а є надійними, безпечними та економічно вигідними.

Що далі?