İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Konteyner & Kubernetes
  • Gateway API’yi kind ile Yerelde Deneme Rehberi
Bulut Altyapı Geliştirici Araçları Konteyner & Kubernetes cloud-provider-kind, Gateway API, HTTPRoute, kind, Kubernetes Aşkın KILIÇ 06/08/2026 4 Yorumlar

Gateway API’yi kind ile Yerelde Deneme Rehberi

Gateway API'yi kind ile Yerelde Deneme Rehberi
📑 İçindekiler
  1. Ön koşullar
  2. kind ile küme oluşturma
  3. cloud-provider-kind kurulumu
  4. Gateway tanımlama
  5. Örnek uygulamanın dağıtımı
  6. HTTPRoute oluşturma
  7. Rotayı test etmek
  8. Sorun giderme
  9. Gateway durumu
  10. HTTPRoute durumu
  11. Denetleyici logları
  12. Temizlik
  13. Sonraki adımlar
  14. İlgili İçerikler
  15. Kaynaklar ve İleri Okuma

⏱️ 5 dk okuma📅 6 Ağustos 2026

Gateway API’yi öğrenmek ve denemek için üretim ortamının karmaşıklığına girmek şart değil; yerel makinede çalışan bir kind kümesi hızlı bir başlangıç sağlar. Bu yazıda kind ile Kubernetes kümesi oluşturmayı, cloud-provider-kind üzerinden hem LoadBalancer Servislerini hem de Gateway API denetleyicisini devreye almayı, ardından bir Gateway ve HTTPRoute tanımlayarak örnek uygulamaya trafik yönlendirmeyi adım adım göreceksiniz.

Bu kurulum yalnızca öğrenme ve deneme amaçlıdır. Üretim iş yükleri için uygun değildir; gerçek ortamlar için Gateway API uygulama listesinden ihtiyacınıza uyan bir denetleyici seçmelisiniz.

Ön koşullar

Başlamadan önce yerel makinede şu araçların kurulu olması gerekir:

  • Docker: kind ve cloud-provider-kind için gereklidir.
  • kubectl: Kubernetes komut satırı aracı.
  • kind: Docker içinde Kubernetes çalıştırmak için.
  • curl: Rotaları test etmek için.

kind ile küme oluşturma

Tek düğümlü bir Kubernetes kümesini Docker konteyneri içinde çalıştırmak için şu komutu kullanın:

kind create cluster

cloud-provider-kind kurulumu

cloud-provider-kind, bu kurulumun iki temel bileşenini sağlar:

  • LoadBalancer tipindeki Servislere adres atayan bir LoadBalancer denetleyicisi.
  • Gateway API özelliklerini karşılayan bir Gateway API denetleyicisi.

Bunlara ek olarak Gateway API için gereken Custom Resource Definition (CRD) tanımlarını da otomatik olarak kümeye kurar. Kind bir bulut sağlayıcısı olmasa da proje bulut ortamındaki özellikleri simüle ettiği için bu adı taşıyor.

Kind kümesini oluşturduğunuz ana makinede cloud-provider-kind’ı bir Docker konteyneri olarak çalıştırın:

VERSION="$(basename $(curl -s -L -o /dev/null -w '%{url_effective}' https://github.com/kubernetes-sigs/cloud-provider-kind/releases/latest))"
docker run -d --name cloud-provider-kind --rm --network host -v /var/run/docker.sock:/var/run/docker.sock registry.k8s.io/cloud-provider-kind/cloud-controller-manager:${VERSION}

Bazı sistemlerde Docker soketine erişmek için yükseltilmiş yetkiler gerekebilir. Konteynerin çalıştığını doğrulamak için:

docker ps --filter name=cloud-provider-kind
docker logs cloud-provider-kind

Gateway tanımlama

cloud-provider-kind, cloud-provider-kind adında bir GatewayClass’ı otomatik olarak sağlar. Aşağıdaki manifest, gateway-infra adlı yeni bir namespace oluşturur, 80 numaralı porttan dinleyen bir Gateway kurar ve *.exampledomain.example desenine uyan hostname’leri kabul eder. Örnekte tüm namespace’lerden route eklenmesine izin verildi; gerçek kümelerde allowedRoutes.namespaces alanında Same veya Selector değerlerini tercih ederek eklemeleri sınırlandırmak daha güvenli.

---
apiVersion: v1
kind: Namespace
metadata:
name: gateway-infra
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: gateway
namespace: gateway-infra
spec:
gatewayClassName: cloud-provider-kind
listeners:
- name: default
hostname: "*.exampledomain.example"
port: 80
protocol: HTTP
allowedRoutes:
namespaces:
from: All

Gateway’in doğru şekilde programlandığını ve adres aldığını kontrol edin:

kubectl get gateway -n gateway-infra gateway

PROGRAMMED sütunu True, ADDRESS alanı da bir IP değeri içermelidir.

Örnek uygulamanın dağıtımı

Yapılandırmayı test etmek için 3000 portunda dinleyen ve istekleri (path, header, ortam değişkenleri) geri döndüren basit bir echo uygulaması dağıtılır. Uygulama demo adlı namespace’te çalışır:

apiVersion: v1
kind: Namespace
metadata:
name: demo
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: echo
name: echo
namespace: demo
spec:
ports:
- name: http
port: 3000
protocol: TCP
targetPort: 3000
selector:
app.kubernetes.io/name: echo
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: echo
name: echo
namespace: demo
spec:
selector:
matchLabels:
app.kubernetes.io/name: echo
template:
metadata:
labels:
app.kubernetes.io/name: echo
spec:
containers:
- env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
image: registry.k8s.io/gateway-api/echo-basic:v20251204-v1.4.1
name: echo-basic

HTTPRoute oluşturma

Sırada Gateway’den echo uygulamasına trafik yönlendirecek HTTPRoute var. Bu route, some.exampledomain.example hostname’ine gelen istekleri yakalar ve gateway-infra namespace’indeki Gateway’e bağlanır:

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: echo
namespace: demo
spec:
parentRefs:
- name: gateway
namespace: gateway-infra
hostnames: ["some.exampledomain.example"]
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: echo
port: 3000

Rotayı test etmek

Gateway’in IP adresini alıp curl ile some.exampledomain.example hostname üzerinden istek gönderebilirsiniz. Aşağıdaki komut POSIX kabuklar için verildi; gerekirse ortamınıza göre uyarlayın:

GW_ADDR=$(kubectl get gateway -n gateway-infra gateway -o jsonpath='{.status.addresses[0].value}')
curl --resolve some.exampledomain.example:80:${GW_ADDR} http://some.exampledomain.example

Başarılı bir yanıtta, isteğin path, host, method, header ve pod bilgilerini içeren bir JSON çıktısı görürsünüz. Bu, Gateway API kurulumunun doğru çalıştığı anlamına gelir.

Sorun giderme

Beklenen sonuç alınamıyorsa ilk adım kaynakların durumunu incelemektir.

Gateway durumu

kubectl get gateway -n gateway-infra gateway -o yaml

status altında şu koşulların sağlanması beklenir:

  • Accepted: True — Gateway denetleyici tarafından kabul edildi.
  • Programmed: True — Gateway başarıyla yapılandırıldı.
  • .status.addresses alanı bir IP adresi ile doldurulmuş olmalı.

HTTPRoute durumu

kubectl get httproute -n demo echo -o yaml

status.parents altındaki koşullara bakın. Sık karşılaşılan durumlar:

  • ResolvedRefs değeri False ve BackendNotFound nedeni: Backend Servis yok ya da adı yanlış.
  • Accepted değeri False: Route Gateway’e bağlanamadı; namespace izinlerini veya hostname eşleşmesini kontrol edin.

Backend bulunamadığında görülen tipik bir hata şöyledir:

status:
parents:
- conditions:
- lastTransitionTime: "2026-01-19T17:13:35Z"
message: backend not found
observedGeneration: 2
reason: BackendNotFound
status: "False"
type: ResolvedRefs
controllerName: kind.sigs.k8s.io/gateway-controller

Denetleyici logları

Kaynak durumları sorunu göstermiyorsa cloud-provider-kind loglarını canlı izleyin:

docker logs -f cloud-provider-kind

Bu çıktı, hem LoadBalancer hem de Gateway API denetleyicisinin ayrıntılı loglarını içerir.

Temizlik

Deneyler bittiğinde kaynakları temizleyebilirsiniz. Önce namespace’leri silin:

kubectl delete namespace gateway-infra
kubectl delete namespace demo

Ardından cloud-provider-kind konteynerini durdurun. Konteyner --rm ile başlatıldığı için durdurulunca otomatik silinir:

docker stop cloud-provider-kind

Son olarak kind kümesini silin:

kind delete cluster

Sonraki adımlar

Yerel ortamda Gateway API ile pratik yaptıktan sonra üretime hazır uygulamalara geçebilirsiniz. Gateway API implementasyonları sayfasından ihtiyacınıza uygun bir denetleyici seçebilir; TLS, trafik bölme veya header manipülasyonu gibi ileri konuları resmi dokümantasyondan çalışabilirsiniz. Path tabanlı yönlendirme, header eşleştirme ve istek yansıtma gibi özellikler için kullanıcı rehberleri iyi bir referanstır.

Tekrar hatırlatalım: kind üzerindeki bu kurulum yalnızca geliştirme ve öğrenme amaçlıdır. Gerçek iş yükleri için üretime uygun bir Gateway API implementasyonu tercih edin.

İlgili İçerikler

  • Azure Dev/Test Avantajı: Visual Studio ile Bulutta Deneme
  • Headlamp Cluster API Eklentisi: CAPI Artık Görsel Arayüzde
  • Data API Builder 2.0: REST Yolunu İş Yapına Göre Kurmak

Kaynaklar ve İleri Okuma

  • kubernetes.io
  • Kubernetes Blog: Experimenting with Gateway API using kind
  • Gateway API resmi dokümantasyonu
  • Gateway API implementasyonları
  • Gateway API başlangıç rehberleri
  • Gateway API API referansı
  • kind projesi
  • kind hızlı başlangıç rehberi
  • cloud-provider-kind deposu
  • kubectl kurulum belgeleri
  • Docker kurulumu
  • curl
  • Gateway API v1.5: Altı Özellik Stable Oldu, Ne Değişiyor?
  • Gateway API v1.6: TCPRoute ve UDPRoute Standard Oldu
  • Ingress2Gateway 1.0: Ingress’ten Gateway API’ye Geçiş
🤖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Ç
Aşkın KILIÇYazar

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

İlgili Yazılar

SQL Yazarken İki Dünyayı Birleştiren Küçük Ama Güçlü Hamle
SQL Yazarken İki Dünyayı Birleştiren Küçük Ama Güçlü Hamle8 Nis 2026
GPT-6 Astra Microsoft Foundry’de Genel Kullanıma Açıldı
GPT-6 Astra Microsoft Foundry’de Genel Kullanıma Açıldı7 Eyl 2026
Windows Terminal Preview 1.25: Yeni Ayarlar ve Kitty Desteği
Windows Terminal Preview 1.25: Yeni Ayarlar ve Kitty Desteği18 Ağu 2026
Azure SQL Foundations: Yeni Video Serisi ve GitHub Örnekleri
Azure SQL Foundations: Yeni Video Serisi ve GitHub Örnekleri26 Ağu 2026

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

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

YouTube GitHub

Haftalık Bülten

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

Etiket cloud-provider-kind Gateway API HTTPRoute kind Kubernetes
Önceki yazı

GitHub Hukuk Ekibi Copilot CLI ile İş Akışlarını Nasıl

Sonraki yazı

Azure DevOps Service Connection ile PAT’siz Kimlik Doğrulama

İlginizi Çekebilir

Foundry Dev Pack ile Tek Komutta Geliştirme Ortamı
Aşkın KILIÇ 0

Foundry Dev Pack ile Tek Komutta Geliştirme Ortamı

20/09/2026
GitHub Copilot JetBrains 2025.1.x Desteğini Sonlandırıyor
Aşkın KILIÇ 0

GitHub Copilot JetBrains 2025.1.x Desteğini Sonlandırıyor

20/09/2026
Copilot Code Review: İnceleme Özeti ve Akıllı Commit
Aşkın KILIÇ 0

Copilot Code Review: İnceleme Özeti ve Akıllı Commit

19/09/2026

4 comments

comments user
Ahmet Y. 06/08/2026 11:12

kind ile Gateway API denemek isteyip de nerede başlayacağımı bilemiyordum, tam zamanında geldi bu yazı. cloud-provider-kind kısmını bilmiyordum, LoadBalancer için elle bir şeyler yapmak gerekiyor sandım hep.

Yanıtla
comments user
Gökhan İ. 06/08/2026 12:48

kind ile Gateway API denemek isteyip de bulut ortamı olmadığı için erteleyenler için çok işe yarar bir rehber olmuş. cloud-provider-kind’ı daha önce duymamıştım, LoadBalancer desteğini yerelde bu kadar kolay çözüyor olması güzel sürpriz oldu.

Yanıtla
comments user
Emre Ç. 06/08/2026 12:56

kind ile Gateway API denemek isteyip de nerede başlayacağını bilmeyenler için tam zamanında bir yazı olmuş. Cloud-provider-kind kısmını daha önce hiç duymamıştım, LoadBalancer desteğini bu şekilde çözdüklerini bilmiyordum.

Yanıtla
comments user
Arda K. 06/08/2026 18:23

kind üzerinde Gateway API denemek hep biraz uğraştırıcı oluyordu, cloud-provider-kind’ı bilmiyordum açıkçası. LoadBalancer sorununu çözüyor mu gerçekten? Bir deneyeyim bu hafta sonu.

Yanıtla

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Foundry Dev Pack ile Tek Komutta Geliştirme Ortamı
    20/09/2026 Foundry Dev Pack ile Tek Komutta Geliştirme Ortamı
  • GitHub Copilot JetBrains 2025.1.x Desteğini Sonlandırıyor
    20/09/2026 GitHub Copilot JetBrains 2025.1.x Desteğini Sonlandırıyor
  • Copilot Code Review: İnceleme Özeti ve Akıllı Commit
    19/09/2026 Copilot Code Review: İnceleme Özeti ve Akıllı Commit
  • Azure Local ve Azure Arc ile Dağıtık Hibrit Altyapı
    19/09/2026 Azure Local ve Azure Arc ile Dağıtık Hibrit Altyapı
  • Kubernetes v1.37: emptyDir ve Bind Mount Sertleştirmesi
    19/09/2026 Kubernetes v1.37: emptyDir ve Bind Mount Sertleştirmesi
  • MCP C# SDK 1.0 Yayınlandı: Yetkilendirme, İkonlar ve Gerçek Dünya Notları
    21/03/2026 MCP C# SDK 1.0 Yayınlandı: Yetkilendirme, İkonlar ve Gerçek Dünya Notları
  • Node.js Addon'larını .NET Native AOT ile Yazmak
    21/04/2026 Node.js Addon’larını .NET Native AOT ile Yazmak
  • Microsoft 365 Copilot Agent Evaluations: Ajan Kalitesi Ölçümü
    09/05/2026 Microsoft 365 Copilot Agent Evaluations: Ajan Kalitesi Ölçümü
  • GitHub Copilot Build Performance: Proje Bazlı Analiz Geldi
    08/05/2026 GitHub Copilot Build Performance: Proje Bazlı Analiz Geldi
  • VS Code’da MSSQL Eklentisinde Neler Değişti? Yapay Zekâlı Şema Tasarımı ve Daha Fazlası
    25/03/2026 VS Code’da MSSQL Eklentisinde Neler Değişti? Yapay Zekâlı Şema Tasarımı ve Daha Fazlası
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure OpenAI azure sdk Azure SQL bulut bilişim CI/CD CodeQL code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry otomasyon performans Pull Request RAG SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

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
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 460 yazı 🏗️ Bulut Altyapı 372 yazı 🤖 Yapay Zeka 311 yazı 🔧 DevOps 256 yazı ☁️ Microsoft Azure 248 yazı 🔒 Güvenlik & Kimlik 213 yazı 🏢 Kurumsal Teknoloji 92 yazı 📊 Veri & Analitik 65 yazı 🐳 Konteyner & Kubernetes 61 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← GitHub Hukuk Ekibi Copilot CLI...
    Azure DevOps Service Connectio... →
    📩

    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.
    GitHub RSS