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

Модуль 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, який розділяє відповідальність:

  1. Адмін: створює Gateway (залізо, сертифікати, IP).
  2. Розробник: створює 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»
  1. Увімкніть Gateway API у вашому кластері.
  2. Створіть два сервіси: app-v1 та app-v2.
  3. Напишіть HTTPRoute, який направляє 90% трафіку на v1 і 10% — на v2.
  4. Оновіть ваги до 50/50 і перевірте через curl, як змінюються відповіді.
  5. Проаналізуйте логи мережевих політик у Cloud Logging, щоб побачити відхилені запити.

Переходьте до Модуля 6.3: Workload Identity та безпека в GKE — ви навчитеся підключати поди до сервісів Google без паролів, налаштовувати Binary Authorization для перевірки образів та використовувати дашборди безпеки GKE.