Модуль 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»Це найважливіше рішення при створенні кластера.
1. Kubenet (Базовий)
Розділ «1. Kubenet (Базовий)»Поди отримують IP з віртуальної мережі, яку Azure “не бачить”.
- Плюс: Економія IP (тільки вузли споживають адреси вашої мережі).
- Мінус: Повільніше, обмеження на 400 маршрутів, немає підтримки Windows.
2. Azure CNI (Нативний)
Розділ «2. Azure CNI (Нативний)»Кожен под отримує реальну 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 | Глобальні політики, складні правила |
| Cilium | L7 Security: “дозволити GET /api, але заборонити DELETE”, фільтрація по іменах (api.stripe.com) |
Вхід трафіку (Ingress)
Розділ «Вхід трафіку (Ingress)»- Application Gateway (AGIC): Хмарний балансувальник L7. Має вбудований WAF (захист від хакерів) та SSL-сертифікати.
- 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»- Створіть кластер із мережею Cilium.
- Розгорніть под, якому потрібен доступ до
api.stripe.com. - Напишіть CiliumNetworkPolicy, яка:
- Дозволяє DNS запити тільки для
*.stripe.com. - Дозволяє вихідний HTTPS трафік тільки на
api.stripe.com. - Забороняє будь-який інший вихід в інтернет.
- Дозволяє DNS запити тільки для
- Перевірте, що под не може пінгувати Google, але успішно звертається до Stripe.
Наступний модуль
Розділ «Наступний модуль»Переходьте до Модуля 7.3: Workload Identity та безпека в AKS — ви навчитеся повністю відмовлятися від паролів у коді, використовуючи ідентичність Entra ID для доступу до баз даних та секретів.