Gateway API v1.6: TCPRoute ve UDPRoute Standard Oldu

Kubernetes SIG Network, Gateway API v1.6.0’ı yayımladı. TCPRoute ve UDPRoute ham TCP/UDP yönlendirmesiyle Standard kanala geçti; deneysel kaynaklar ise gateway.networking.x-k8s.io grubuna ayrıldı.

Kubernetes SIG Network topluluğu, Gateway API’nin v1.6.0 sürümünü 30 Haziran’da yayımladı. Sürüm, Gateway API’yi HTTP ve TLS gibi 7. katman protokollerinin ötesine taşıyor: Ham TCP ve UDP yönlendirmesi artık üretim seviyesinde kararlı, deneysel API yüzeyi ise ayrı bir grup altında netleştirildi. Yazıda v1.6 ile gelen iki temel değişiklik ve pratik kullanım örnekleri ele alınıyor.

Öne çıkan değişiklikler

Sürümün iki ana başlığı şöyle özetlenebilir:

  • TCPRoute ve UDPRoute Standard oldu: Ham L4 TCP/UDP yönlendirmesi v1 API sürümüyle GA kararlılığına ulaştı.
  • Deneysel API grubu ayrıldı: Deneysel kaynaklar artık gateway.networking.x-k8s.io grubunda ve X öneki ile yaşıyor; deneysel ile standart arasındaki sınır böylece API grubu düzeyinde belirginleşiyor.

TCPRoute ve UDPRoute Standard kanala geçti

Gateway API bugüne kadar yalnızca HTTP ve TLS trafiği için kararlı bir yönlendirme modeli sunuyordu. TCP veya UDP üzerinden ham protokol konuşan iş yükleri, yani veritabanları, DNS, VoIP, oyun sunucuları, IoT telemetrisi, bir Gateway’e taşınabilir biçimde bağlanmak için ya düz bir Kubernetes Service’e ya da Gateway denetleyicileri arasında taşınmayan uygulamaya özgü CRD’lere düşmek zorundaydı.

TCPRoute ve UDPRoute bu boşluğu kapatıyor, L7 farkındalığı gerektirmeden yalnızca protokol ve port temelinde arka uçlara yönlendirme yapıyor. Bu sürümle birlikte her ikisi de Experimental kanaldan Standard kanala terfi etti ve v1 API sürümüne taşındı. Her iki kaynağın v1alpha2 sürümü v1.6 itibarıyla kullanımdan kaldırıldı olarak işaretlendi; ileriki bir sürümde tamamen kaldırılacak.

TCPRoute nasıl çalışıyor?

Öncelikle bir Gateway’in, TCPRoute eklenmesine izin veren bir listener’a sahip olması gerekiyor:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: example-gateway
spec:
gatewayClassName: example-gateway-class
listeners:
- name: foo
protocol: TCP
port: 12345
allowedRoutes:
kinds:
- kind: TCPRoute

Ardından TCPRoute bu listener’a bağlanır ve trafiği bir arka uca iletir:

apiVersion: gateway.networking.k8s.io/v1
kind: TCPRoute
metadata:
name: tcp-app
spec:
parentRefs:
- name: example-gateway
sectionName: foo
rules:
- backendRefs:
- name: my-foo-service
port: 6000

Gateway’in 12345 portuna gelen trafik, my-foo-service servisinin uç noktalarına 6000 portu üzerinden proxy’lenir. parentRefs içinde sectionName ve port belirtilmezse route, tek bir listener yerine Gateway üzerindeki tüm TCP listener’lara bağlanır.

UDPRoute örneği

UDPRoute aynı deseni izler; yalnızca listener protokolü ve route türü değişir:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: example-gateway
spec:
gatewayClassName: example-gateway-class
listeners:
- name: foo
protocol: UDP
port: 12345
allowedRoutes:
kinds:
- kind: UDPRoute
---
apiVersion: gateway.networking.k8s.io/v1
kind: UDPRoute
metadata:
name: udp-app
spec:
parentRefs:
- name: example-gateway
sectionName: foo
rules:
- backendRefs:
- name: my-foo-service
port: 6000

XBackend: Deneysel kanalda yeni bir arka uç modeli

v1.6 ile birlikte gelen XBackend, Service ve diğer arka uç türleri için Gateway API içinde genel amaçlı bir “decorator” niteliği taşıyan yeni bir kaynak. Service kaynağı kararlı ve esnek olmasına rağmen bu esneklik, Gateway API’nin çözmek zorunda kaldığı çok sayıda sınır durum yaratıyor; kararlılık ise Service’e yeni kavramlar eklemeyi neredeyse imkansız kılıyor.

XBackend, üstteki EndpointSelector KEP’inin fikirlerine dayanıyor; arka uç uygulamayı hedeflemeye devam ediyor ama Service ile ele alınması zor veya riskli olan senaryolara topluluğun eklemeler yapmasına imkan tanıyan Gateway API’ye özgü bir nesne sunuyor.

XBackend’in ilk sürümü ExternalHostname hedeflerini destekliyor. Bu tür hedefler, “confused deputy” saldırıları riski nedeniyle Gateway API’de Service üzerinden desteklenmiyordu. XBackend’de bu destek Extended/Optional bir özellik olarak sunuluyor; implementasyonlar ve kullanıcılar güvenlik dengelerini anladıktan sonra bu özelliğe opt-in yapabiliyor. Yetenek özellikle egress senaryolarında, küme içinde barındırılan agentic iş yüklerinde sıkça karşılaşılan senaryolarda kullanışlı; topluluk bu yönde Gateways for Egress ile ilgili GEP çalışmalarını sürdürüyor.

Uyarı: XBackend API’si deneyseldir ve davranışı değişebilir; üretimde kullanıma hazır olduğu varsayılmamalıdır.

Bir bulut AI API’sine egress yapmak için ExternalName tipinde bir arka ucun kullanıldığı Gateway örneği aşağıda görülebilir:

# Gelen bağlantılar için Gateway seviyesindeki TLS geçerli olmaya devam eder
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
spec:
listeners:
- name: https
protocol: HTTPS
tls:
certificateRefs:
- name: gateway-cert
---
# Dış hedef için Backend kaynağı
apiVersion: gateway.networking.x-k8s.io/v1alpha1
kind: XBackend
metadata:
name: ai-provider-api
namespace: ai-apps
spec:
type: ExternalHostname
externalHostname:
hostname: api.ai-provider.com
---
# XBackend'e referans veren HTTPRoute
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
spec:
rules:
- backendRefs:
- name: ai-provider-api
kind: XBackend
group: gateway.networking.x-k8s.io

Topluluk ayrıca Session Persistence yapılandırmasını XBackendTrafficPolicy‘den XBackend‘e taşımaya; retry, TLS origination ve benzeri, Route bazlı değil uygulama bazlı yapılandırılması daha anlamlı olan ayarları da bu kaynağa dahil etmeye çalışıyor.

Deneysel kaynaklar standart API grubundan ayrıldı

Daha önce deneysel kaynaklar, standart kaynaklarla aynı API grubunu, yani gateway.networking.k8s.io, paylaşıyor ve yalnızca v1alpha2 gibi sürüm ipuçlarıyla ayrışıyordu. TCPRoute ve UDPRoute bu şema altında Standard’a terfi eden son kaynaklar oldu.

Bundan sonra yeni deneysel kaynaklar ayrı bir grupta, gateway.networking.x-k8s.io altında tanımlanacak ve API tür adları X önekini alacak; XBackend ve XMesh gibi. Bir kaynak Standard’a terfi ettiğinde gateway.networking.k8s.io grubuna yeniden adlandırılıp taşınıyor, X öneki de düşüyor; XMesh’in ileride Mesh olması beklendiği gibi.

Bu ayrım, deneysel/standart sınırını yalnızca sürüm dizesine bakarak değil doğrudan API grubu düzeyinde açık hale getiriyor; hem operatörler hem de araç geliştiricileri için karışıklık ihtimalini azaltıyor.

Uyumlu uygulamalar ve katılım

Duyuru yayımlandığı gün itibarıyla v1.6 ile uyumlu olduğu belirtilen implementasyonlar şunlar:

  • Agentgateway
  • Airlock Microgateway
  • GKE Gateway
  • kgateway
  • NGINX Gateway Fabric
  • Traefik Proxy

Gateway API, Kubernetes SIG Network altında topluluk odaklı bir proje olarak sürdürülüyor. Katkı, geri bildirim ve tartışma için #sig-network-gateway-api Slack kanalı, haftalık SIG Network toplantıları ve kubernetes-sigs/gateway-api GitHub deposu üzerinden katılım sağlanabilir.

Kaynaklar ve İleri Okuma

Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

3 Yorum

  1. TCPRoute ve UDPRoute’un sonunda stable’a geçmesi çok iyi haber, özellikle L4 yük dengeleme ihtiyacı olan projelerde artık daha rahat kullanabiliriz. Deneysel kaynaklar için ayrı grup kararı da mantıklı, production’da yanlışlıkla experimental bir şey kullanma riskini azaltıyor.

  2. TCPRoute ve UDPRoute’un sonunda stable’a geçmesi güzeldi, uzun zamandır bekliyordum. Deneysel kaynakları ayrı bir gruba taşımaları da mantıklı bir karar, production ortamında yanlışlıkla experimental bir şey kullanma riskini azaltıyor.

  3. TCPRoute ve UDPRoute’un sonunda stable’a geçmesi güzel haber, uzun zamandır bekliyordum bu adımı. Deneysel kaynakları ayrı bir gruba almak da mantıklı bir karar, özellikle production ortamında ne kullandığını bilmek kritik.

Yoruma kapalı.

✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Kategoriler
Ara
Paylaş
WhatsApp
İçindekiler
← Disrupting supply chain attack...
Customize the reasoning level ... →
📩

Gitmeden önce!

Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

📬 Haftalık bülten: Teknoloji + AI haberleri
Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.