Модуль 6.2: Мережа GKE: Dataplane V2 та Gateway API
Складність: [COMPLEX] | Час на виконання: 3 год | Передумови: Модуль 6.1 (Архітектура GKE)
Чому цей модуль важливий
Розділ «Чому цей модуль важливий»У вересні 2023 року медична компанія виявила, що їхні мережеві політики (Network Policies) у кластері GKE взагалі не працювали. Під час аудиту виявилося, що зламаний под у тестовому неймспейсі міг вільно читати дані з подів у продакшні. Причина: кластер використовував старий мережевий рушій на базі iptables, який просто ігнорував правила Kubernetes NetworkPolicy. Команда думала, що створення YAML-файлу з політикою достатньо, але без правильного мережевого плагіна (CNI) ці файли — просто текст. Результат: провал аудиту SOC 2 та затримка великого контракту на $2.3 мільйона.
Мережа GKE — це місце, де Kubernetes зустрічається з глобальною інфраструктурою Google. Ваші рішення щодо типу мережі (VPC-native), використання Dataplane V2 та стратегії балансування навантаження визначають швидкість, безпеку та вартість вашого додатка. Помилка тут може залишити ваші поди відкритими для атак або створити величезні рахунки за трафік.
У цьому модулі ви дізнаєтеся, як VPC-native кластери роблять поди частиною вашої хмари, як Dataplane V2 використовує технологію eBPF для надшвидкої мережі без kube-proxy, як працює інтеграція з Cloud Load Balancing та чому сучасний Gateway API замінює старий Ingress.
VPC-Native та Alias IPs: Нативна мережа
Розділ «VPC-Native та Alias IPs: Нативна мережа»Це стандарт для GKE. У VPC-native кластері кожен под отримує реальну внутрішню IP-адресу з вашої мережі VPC.
Чому це важливо:
Розділ «Чому це важливо:»- Швидкість: немає зайвих перетворень адрес (NAT).
- Безпека: ви можете бачити трафік кожного пода у VPC Flow Logs.
- Масштаб: ви не обмежені лімітами статичних маршрутів (routes).
- Інтеграція: поди можуть звертатися до баз даних Cloud SQL або бакетів GCS безпосередньо за внутрішніми IP.
Порада: Завжди плануйте IP-діапазони для подів із запасом. Їх неможливо змінити після створення кластера.
Dataplane V2: Революція eBPF
Розділ «Dataplane V2: Революція eBPF»Dataplane V2 — це сучасний мережевий стек GKE, побудований на базі Cilium. Він прибирає старий kube-proxy і замінює його програмами eBPF, які працюють прямо в ядрі Linux.
| Функція | Старий шлях (iptables) | Dataplane V2 (eBPF) |
|---|---|---|
| Продуктивність | Уповільнюється при рості сервісів | Завжди швидка (O(1) lookup) |
| Network Policies | Треба ставити окремо (напр. Calico) | Вбудовано за замовчуванням |
| Видимість | Тільки базові логи | Глибокий моніторинг кожного пакета |
| Аптайм | Можливі паузи при оновленні правил | Миттєве оновлення без пауз |
Cloud Load Balancing та Gateway API
Розділ «Cloud Load Balancing та Gateway API»GKE глибоко інтегрований із балансувальниками Google.
Gateway API: Наступне покоління
Розділ «Gateway API: Наступне покоління»Забудьте про Ingress. Gateway API — це новий стандарт Kubernetes, який розділяє відповідальність:
- Адмін: створює
Gateway(залізо, сертифікати, IP). - Розробник: створює
HTTPRoute(куди направити трафік).
Кіллер-фіча: Gateway API підтримує Traffic Splitting (напр. 90% трафіку на стару версію, 10% на нову) без використання Istio або інших складних систем.
Типові помилки
Розділ «Типові помилки»| Помилка | Чому це стається | Як виправити |
|---|---|---|
| Малий діапазон IP для подів | Не врахували ріст вузлів | Плануйте мінімум /18 або /17 для великих кластерів |
| Очікування роботи політик без DPv2 | Незнання архітектури | Завжди вмикайте Dataplane V2 при створенні кластера |
| Забули про DNS у політиках | Deny-all блокує і запити до DNS | Завжди додавайте правило Allow на порт 53 (UDP/TCP) для kube-dns |
| Використання Ingress для Canary | Спроба зробити це через анотації | Переходьте на Gateway API; він створений для складного роутингу |
Тест
Розділ «Тест»1. Чим eBPF у Dataplane V2 кращий за старий kube-proxy?
eBPF працює в ядрі Linux і використовує хеш-таблиці для пошуку сервісів. Це означає, що швидкість мережі не падає, навіть якщо у вас 10 000 сервісів у кластері. Старий kube-proxy перевіряв правила по черзі, що створювало затримки на великих масштабах.
2. Чи можна використовувати NetworkPolicy для заборони доступу до конкретного сайту в інтернеті (напр. facebook.com)?
Так, якщо ви використовуєте Dataplane V2. Він підтримує FQDN Network Policies, де ви можете вказати доменне ім’я замість IP-адреси у правилах Egress.
Практична вправа: Canary розгортання через Gateway API
Розділ «Практична вправа: Canary розгортання через Gateway API»- Увімкніть Gateway API у вашому кластері.
- Створіть два сервіси:
app-v1таapp-v2. - Напишіть HTTPRoute, який направляє 90% трафіку на v1 і 10% — на v2.
- Оновіть ваги до 50/50 і перевірте через
curl, як змінюються відповіді. - Проаналізуйте логи мережевих політик у Cloud Logging, щоб побачити відхилені запити.
Наступний модуль
Розділ «Наступний модуль»Переходьте до Модуля 6.3: Workload Identity та безпека в GKE — ви навчитеся підключати поди до сервісів Google без паролів, налаштовувати Binary Authorization для перевірки образів та використовувати дашборди безпеки GKE.