Meydan okuma - Ingress
- Docker & Kubernetes kursu
- İleri seviye
- Ders 66/70
- 5 dk
Path tabanlı yönlendirme ile Ingress yazarsın.
Meydan okuma: çok servisli Ingress
Bu meydan okumada iki alan adını ve üç servisi tek bir Ingress'le yayınlayacaksın; ana alan adı HTTPS'li olacak:
magaza.example.com/ -> web:80
magaza.example.com/api -> api:8000
panel.example.com/ -> panel:80Sınama için gerçek DNS beklenmez: istek controller adresine gönderilir ve alan adı Host başlığıyla verilir.
Uygulama Ingress kuralları
Bir Ingress'in rules bölümünü yaz (rules: ile başlayarak): magaza.example.com için /api (Prefix) → api:8000 ve / (Prefix) → web:80; panel.example.com için / (Prefix) → panel:80.
Başlangıç kodu
# buraya yazÖrnek çözüm
rules:
- host: magaza.example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api
port:
number: 8000
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80
- host: panel.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: panel
port:
number: 80Beklenen çıktı
ingress.networking.k8s.io/magaza configured
Uygulama TLS ve sınama
Üç komut yaz: magaza.crt ve magaza.key'den magaza-tls TLS Secret'ını oluştur; curl -s -H "Host: magaza.example.com" http://$(minikube ip)/api/saglik ile API yolunu sına; curl -s -H "Host: panel.example.com" http://$(minikube ip)/ ile paneli sına.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl create secret tls magaza-tls --cert=magaza.crt --key=magaza.key
curl -s -H "Host: magaza.example.com" http://$(minikube ip)/api/saglik
curl -s -H "Host: panel.example.com" http://$(minikube ip)/Beklenen çıktı
secret/magaza-tls created
{"durum":"ok"}
<!doctype html><title>Yönetim paneli</title>
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 panel.example.com/api isteği bu kurallarla nereye gider?
- api:8000
- web:80
- 404
- panel:80 (yalnızca kendi host kuralları uygulanır) Doğru cevap
Açıklama: Önce host eşleşir, sonra o host'un yolları.
2 Alan adını başlıkla ver.
curl -H "____: panel.example.com" http://$(minikube ip)/
curl -H "Host: panel.example.com" http://$(minikube ip)/
Açıklama: Ingress host'u Host başlığından okur.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
rules[].host |
Alan adı kuralı |
paths[].path |
Yol kuralı |
tls[].hosts |
HTTPS alan adları |
Host başlığı |
DNS'siz sınama |