TGViewer
CORTEL CORTEL @cortel_cloud · 4.07K subscribers
Post #2650 1.17K
⏰ Gateway API

Новая стандартная спецификация для управления внешним доступом к сервисам в Kubernetes.

🤚 Это не просто замена Ingress, а следующий этап развития, который предлагает более выразительный, расширяемый и ролевой подход к маршрутизации трафика.

🟢 Зачем это нужно?

— Разделение ответственности: Инфраструктурная команда управляет шлюзами (Gateways), а разработчики — правилами маршрутизации (HTTPRoute).
— Единый стандарт: Замена множества аннотаций Ingress-контроллеров на унифицированные CRD.
— Расширенные функции: Поддержка TLS, нагрузочного балансирования, канареечных развертываний, трассировки и многопротокольной маршрутизации (HTTP, gRPC, TCP/UDP) из коробки.
— Переносимость: Единая конфигурация работает с разными реализациями (Istio, Cilium, NGINX и др.).

🟢 Ключевые принципы

— GatewayClass: Определяет тип шлюза (как IngressClass). Создается администратором кластера.
— Gateway: Реализация шлюза в конкретном namespace. Определяет виртуальный IP, порты и привязку к GatewayClass.
— HTTPRoute (и другие *Route): Правила маршрутизации, привязанные к Gateway. Создаются разработчиками.

🟢 Практический пример: развертывание простого шлюза

✅ Создание GatewayClass (администратором):


apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: public-lb
spec:
controllerName: "example.ru/gateway-controller"
description: "Шлюз для внешнего трафика"


✅ Создание Gateway:


apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: web
namespace: infra
spec:
gatewayClassName: public-lb
listeners:
- name: http
protocol: HTTP
port: 80
allowedRoutes:
namespaces:
from: All


✅ Создание HTTPRoute (разработчиком в namespace app):


apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: frontend-route
namespace: app
spec:
parentRefs:
- name: web
namespace: infra
hostnames: ["app.example.ru"]
rules:
- matches:
- path:
type: PathPrefix
value: /api
backendRefs:
- name: backend-service
port: 8080
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: frontend-service
port: 80


🟢 Что происходит после применения:

1. Контроллер Gateway API разворачивает шлюз (load balancer) с публичным IP
2. Трафик на app.example.ru поступает на шлюз
3. Путь /api маршрутизируется к backend-service, остальной трафик — к frontend-service
4. Политики namespaces предотвращают конфликты между командами

Gateway API — это не просто "Ingress 2.0", а фундаментально новая модель, которая превращает маршрутизацию трафика из админской задачи в декларативный и самообслуживаемый процесс.

#заметкиИнженера
  • 🔥 8
  • 👍 3
  • 👏 2
  • ❤ 1
More from @cortel_cloud
  1. Oct 1, 2026🖥 sed — потоковый редактор текста в Linux 🤓 Появился в Bell Labs в 1970-х и до сих пор и…
  2. Sep 29, 2026🖥 РАЗНИЦА Block, File и Object Storage 🧑‍🎓Повторение — мать учения. Для разных задач по…
  3. Sep 25, 2026😎 Когнитивная РАЗгрузка За неделю с горящими дедлайнами, часовыми ВКС и постоянным перекл…
  4. Sep 23, 2026💻 kubectl diff: обработка изменений в CI/CD kubectl diff сравнивает текущую конфигурацию…
  5. Sep 18, 2026🛡 ДА! У НАС ЦЕЛАЯ ЧЕРЕДА ПОЛЕЗНЫХ ЭФИРОВ ПРО ИБ! 🎙 Уже 24 сентября Вероника Нечаева, выс…
  6. Sep 16, 2026👩‍💻 Работа с ПДн это непрерывный процесс. Компания меняется — появляются новые сервисы,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →