Ingress NGINX Emekliye Ayrılıyor: EKS İçin Gateway API'ye Geçiş
Ingress NGINX Emekliye Ayrılıyor: EKS İçin Gateway API'ye Geçiş
Kubernetes Ingress API'si yıllardır bize hizmet etti ancak modern ihtiyaçları (header routing, traffic splitting vb.) karşılamakta yetersiz kaldı. Çözüm olarak her Ingress Controller (NGINX, ALB, Istio) kendi özel notasyonlarını (annotations) geliştirdi. Bu da taşınabilirliği yok etti.
Kubernetes topluluğu bu sorunu kökten çözmek için Gateway API standardını geliştirdi. Artık Amazon EKS projelerinde standart olarak Gateway API kullanımına geçiyoruz.
Gateway API Nedir?
Gateway API, Ingress'in yerini alan, rol tabanlı ve daha esnek bir ağ API'sidir. Üç ana bileşeni vardır:
- GatewayClass: Altyapı türünü tanımlar (Örn:
amazon-vpc-lattice). - Gateway: Ağ giriş noktasını tanımlar (Load Balancer).
- HTTPRoute: Trafik kurallarını tanımlar (Hangi yol hangi servise gidecek).
Neden Geçmelisiniz?
- Standartlaşma: Farklı proxy'ler (Envoy, NGINX) için ortak bir dil sunar.
- Rol Ayrımı: Altyapı ekibi
Gatewaykaynağını yönetirken, geliştiricilerHTTPRoutekaynağını yönetebilir. - Gelişmiş Özellikler: Canary deployment (%10 trafik A servisine), header matching gibi özellikler yerel olarak desteklenir.
EKS Üzerinde Uygulama
AWS, Gateway API'yi AWS Gateway API Controller veya VPC Lattice üzerinden destekler.
Örnek bir HTTPRoute tanımı:
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
name: my-route
spec:
parentRefs:
- name: my-gateway
rules:
- matches:
- path:
type: PathPrefix
value: /api
backendRefs:
- name: my-service
port: 80
Geleceğin Kubernetes ağ yapısı Gateway API üzerine kuruludur. Erken adapte olmak, teknik borcu önler.