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

Модуль 7.2: Просунуті мережі AKS

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

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

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

У лютому 2024 року європейська e-commerce платформа перенесла свої 85 мікросервісів на AKS. Вони обрали стандартну мережу Kubenet, бо вона здавалася простішою і не потребувала багато IP-адрес. Все працювало чудово, доки навантаження не зросло. Раптом сервіси почали отримувати випадкові затримки по 5 секунд на кожен запит. Два тижні дебагу додатків нічого не дали. Нарешті мережевий інженер знайшов причину: Kubenet використовує таблиці маршрутизації Azure (UDR), які мають ліміт на кількість оновлень. Через велику кількість сервісів система просто не встигала оновлювати маршрути. Міграція на правильну мережу зайняла три тижні і коштувала компанії $180 000 збитків.

Мережа — це рішення, яке ви приймаєте на початку, а платите за нього в кінці. Вибір між Azure CNI, Kubenet та новою мережею на базі Cilium визначає, чи вистачить вам IP-адрес, яка буде затримка між сервісами та наскільки гнучкими будуть ваші правила безпеки. Помилка тут означає повний перезібр кластера в майбутньому.

У цьому модулі ви глибоко вивчите всі чотири моделі мереж AKS, навчитеся налаштовувати Cilium для захисту на рівні L7 (HTTP), дізнаєтеся, коли використовувати Application Gateway (AGIC) замість NGINX, та навчитеся будувати повністю приватні кластери, які неможливо зламати з інтернету.


Чотири моделі мереж: Як поди отримують IP

Розділ «Чотири моделі мереж: Як поди отримують IP»

Це найважливіше рішення при створенні кластера.

Поди отримують IP з віртуальної мережі, яку Azure “не бачить”.

  • Плюс: Економія IP (тільки вузли споживають адреси вашої мережі).
  • Мінус: Повільніше, обмеження на 400 маршрутів, немає підтримки Windows.

Кожен под отримує реальну IP-адресу з вашої мережі Azure VNet.

  • Плюс: Максимальна швидкість, поди бачать інші сервіси Azure напряму.
  • Мінус: Дуже швидко закінчуються IP-адреси.

3. Azure CNI Overlay (Золота середина)

Розділ «3. Azure CNI Overlay (Золота середина)»

Вузли мають реальні IP, а поди — віртуальні, але трафік іде через швидкі тунелі, а не через таблиці маршрутів.

  • Плюс: Вирішує проблему браку IP, працює швидше за Kubenet.

4. Azure CNI Powered by Cilium (Майбутнє)

Розділ «4. Azure CNI Powered by Cilium (Майбутнє)»

Замінює стандартну мережу технологією eBPF.

  • Плюс: Найшвидша мережа, захист на рівні URL (L7), фільтрація по доменних іменах (FQDN).
  • Рекомендовано для всіх нових проектів.

Network Policies: Безпека всередині кластера

Розділ «Network Policies: Безпека всередині кластера»

За замовчуванням у Kubernetes всі можуть спілкуватися з усіма. Це небезпечно.

ДвигунЩо вміє
Azure NPMБазові правила (IP та порти)
CalicoГлобальні політики, складні правила
CiliumL7 Security: “дозволити GET /api, але заборонити DELETE”, фільтрація по іменах (api.stripe.com)

  1. Application Gateway (AGIC): Хмарний балансувальник L7. Має вбудований WAF (захист від хакерів) та SSL-сертифікати.
  2. Web App Routing (NGINX): Легкий та звичний Ingress, який Azure підтримує за вас.

ПомилкаЧому це стаєтьсяЯк виправити
Малі підмережі для Azure CNIНе врахували, що кожен под бере IPРозраховуйте: (вузли * макс_подів) + вузли. Використовуйте мінімум /20
Kubenet для великих системЗдавався простим на стартіДля мікросервісів використовуйте Overlay або Cilium
Відкритий API-серверDefault налаштуванняСтворюйте Private Clusters, щоб API було доступне тільки через VPN
Немає Network Policies”Додамо пізніше”Вмикайте Default Deny з першого дня. Потім дозволяйте тільки те, що треба

1. Чим eBPF у Cilium кращий за стандартні правила iptables?

eBPF працює в ядрі Linux набагато швидше. З iptables при додаванні кожного нового правила мережа уповільнюється (O(n)). З eBPF швидкість залишається однаковою, незалежно від того, 10 у вас правил чи 10 000 (O(1)).

2. Чи можна використовувати Azure CNI, якщо у вашій мережі залишилося лише 50 вільних IP-адрес?

Ні. Azure CNI забронює по 30 IP для кожного вузла відразу при старті. Вам вистачить лише на один сервер. У такому разі використовуйте Azure CNI Overlay.


Практична вправа: Захист через Cilium

Розділ «Практична вправа: Захист через Cilium»
  1. Створіть кластер із мережею Cilium.
  2. Розгорніть под, якому потрібен доступ до api.stripe.com.
  3. Напишіть CiliumNetworkPolicy, яка:
    • Дозволяє DNS запити тільки для *.stripe.com.
    • Дозволяє вихідний HTTPS трафік тільки на api.stripe.com.
    • Забороняє будь-який інший вихід в інтернет.
  4. Перевірте, що под не може пінгувати Google, але успішно звертається до Stripe.

Переходьте до Модуля 7.3: Workload Identity та безпека в AKS — ви навчитеся повністю відмовлятися від паролів у коді, використовуючи ідентичність Entra ID для доступу до баз даних та секретів.