Harici Erişim için Ingress
Hizmetlere harici erişimi yönetmek, HTTP/S yönlendirmesi ve yük dengeleme sağlamak için Ingress'i yapılandırın.
Harici Erişim için Ingress, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
NodePort ve LoadBalancer'ın Ötesi
Uygulamaları harici olarak açığa çıkarmak için NodePort ve LoadBalancer gibi farklı Kubernetes Hizmeti türlerini inceledik.
Yararlı olsalar da özellikle birçok uygulamayı veya API'yi belirli yönlendirme kurallarıyla tek bir IP adresinde barındırmanız gerektiğinde, karmaşık harici erişim gereksinimlerini yönetmek zorlaşabilir.
İşte bu noktada Ingress devreye girer ve daha güçlü, esnek bir çözüm sunar.
Kubernetes Ingress'e Giriş
Ingress, bir kümedeki hizmetlere harici erişimi, öncelikle HTTP ve HTTPS trafiği için yöneten bir Kubernetes API nesnesidir.
- Harici istekler için tek bir giriş noktası görevi görür.
- Ana bilgisayar adlarına veya URL yollarına göre HTTP/S yönlendirmesi sağlar.
- SSL/TLS sonlandırma ve yük dengeleme gibi özellikler de sunabilir.
Ingress'i web trafiğini doğru dahili Hizmetlere yönlendiren akıllı bir trafik denetleyicisi olarak düşünebilirsiniz.
Ingress Denetleyicisi
Ingress kaynağının kendisi yalnızca bir kurallar kümesidir; trafiği doğrudan yönetmez. Ingress'i işlevsel hâle getirmek için kümenizde çalışan bir Ingress Denetleyicisine ihtiyacınız vardır.
Ingress Denetleyicisi, Ingress kaynaklarını izler ve tanımlanan kurallara göre harici bir yük dengeleyiciyi (veya ters vekil sunucuyu) yapılandırır.
Yaygın Ingress Denetleyicileri arasında Nginx, Traefik ve Google Cloud için GCE Ingress veya AWS Load Balancer Controller gibi buluta özel denetleyiciler bulunur.
Ingress Kuralları Nasıl Çalışır
Ingress, gelen harici istekleri kümenizdeki belirli arka uç Hizmetlerine eşleyen kurallar tanımlar. Bu kurallar genellikle şunları belirtir:
- Ana bilgisayar: Alan adı (ör.
www.my-app.com). - Yol: URL yolu (ör.
/api,/blog). - Arka uç Hizmeti: Trafiğin yönlendirileceği Kubernetes Hizmeti ve bağlantı noktası.
Ingress Denetleyicisi, doğru hedefi belirlemek için gelen her istekte bu kuralları değerlendirir.
Ingress YAML'ı Hazırlama
Diğer Kubernetes kaynakları gibi Ingress de bir YAML bildirimi kullanılarak tanımlanır. Burada temel alanları gösteren basit bir yapı yer alıyor:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-web-service
port:
number: 80Basit Yol Tabanlı Ingress
myapp.example.com adresinin kök yoluna (/) gelen tüm trafiği 80 numaralı bağlantı noktasındaki my-web-service adlı Hizmete yönlendiren bir Ingress kaynağı oluşturalım.
Bu Ingress'i uygulamadan önce kümenizde my-web-service adlı bir Deployment ve Hizmetin çalıştığından emin olun.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: basic-app-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-web-service
port:
number: 80Ingress'inizi Dağıtma
Ingress kaynağınızı dağıtmak için YAML'ı bir dosyaya (ör. basic-ingress.yaml) kaydedin ve kubectl apply komutunu kullanın:
kubectl apply -f basic-ingress.yaml
Ingress'inizin durumunu kubectl get ingress komutuyla kontrol edebilirsiniz. Ingress Denetleyicisi daha sonra bu kurallara göre harici yük dengeleyiciyi yapılandırır.
Test etmek için genellikle yerel /etc/hosts dosyanızı (veya DNS'i), myapp.example.com adresini Ingress Denetleyicinizin harici IP adresine yönlendirecek şekilde güncellemeniz gerekir.
Ana Bilgisayar Tabanlı Yönlendirme Örneği
Ingress, farklı ana bilgisayar adlarını kullanarak birden çok uygulamayı tek bir harici IP adresinde barındırmak için idealdir. Burada app1.example.com, service-app1 adresine; app2.example.com ise service-app2 adresine yönlendirilir.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: host-routing-ingress
spec:
rules:
- host: app1.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-app1
port:
number: 80
- host: app2.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-app2
port:
number: 80Bir Ana Bilgisayar, Birden Çok Yol
Aynı ana bilgisayardaki farklı URL yollarını farklı arka uç hizmetlerine de yönlendirebilirsiniz. Bu yöntem, mikro hizmet mimarileri veya tek bir uygulamanın farklı bölümleri için idealdir.
Örneğin, api.example.com/users istekleri users-service hizmetine, api.example.com/products istekleri ise products-service hizmetine gider.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: path-routing-ingress
spec:
rules:
- host: api.example.com
http:
paths:
- path: /users
pathType: Prefix
backend:
service:
name: users-service
port:
number: 80
- path: /products
pathType: Prefix
backend:
service:
name: products-service
port:
number: 80Ingress Amacı Kontrolü
Aşağıdakilerden hangileri Kubernetes Ingress kullanmanın temel faydalarıdır?
Özet: Akıllı Yönlendirme için Ingress
Harika iş çıkardınız! Harici kullanıcıların uygulamalarınızla etkileşim kurma biçimini yönetmek için önemli bir bileşen olan Kubernetes Ingress'i öğrendiniz.
- Ingress, ana bilgisayar adlarına ve URL yollarına göre esnek HTTP/S yönlendirmesi sağlar.
- Ingress kurallarını gözlemlemek ve yönlendirmeyi yapılandırmak için bir Ingress Denetleyicisi (Nginx gibi) gerektirir.
- Birden çok hizmeti tek bir harici IP adresi üzerinden açığa çıkarmayı kolaylaştırarak kümenizi daha verimli ve yönetilebilir hâle getirir.
Ingress'te uzmanlaşmak, sağlam ve erişilebilir bulut yerel uygulamaları oluşturmanın anahtarıdır!
Sıkça Sorulan Sorular
“Harici Erişim için Ingress” dersi ücretsiz mi?
Evet — “Harici Erişim için Ingress” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Harici Erişim için Ingress” dersinde ne öğreneceğim?
Hizmetlere harici erişimi yönetmek, HTTP/S yönlendirmesi ve yük dengeleme sağlamak için Ingress'i yapılandırın. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Harici Erişim için Ingress” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Hizmetlerle Uygulamaları Erişime Açma
- Hizmet Türleri: ClusterIP, NodePort, LoadBalancer
- Harici Erişim için Ingress
- DNS ve Hizmet Keşfi