Meydan okuma - Service
- Docker & Kubernetes kursu
- Orta seviye
- Ders 80/82
- 5 dk
NodePort Service yazıp Pod'lara bağlarsın.
Meydan okuma: iç ve dış servis
Bir uygulamanın iki yüzü vardır: iç servisler (API, veritabanı) yalnızca cluster içinden, ön yüz ise dışarıdan erişilir. Bu meydan okumada her ikisi için doğru Service'leri yazıp çalıştıklarını doğrulayacaksın.
api (ClusterIP) : http://api:8000 # yalnızca cluster içi
web (NodePort) : http://<node-ip>:30080 # dışarıdan
kubectl run -it --rm t --image=busybox:1.36 --restart=Never -- wget -qO- http://api:8000/saglikUygulama API servisi
Bir Service YAML'ı yaz: adı api, type: ClusterIP; selector app: api; port port: 8000, targetPort: 8000.
Başlangıç kodu
# buraya yazÖrnek çözüm
apiVersion: v1
kind: Service
metadata:
name: api
spec:
type: ClusterIP
selector:
app: api
ports:
- port: 8000
targetPort: 8000Beklenen çıktı
service/api created
Uygulama Web servisi ve doğrulama
İki komut yaz: web deployment'ını --type=NodePort --port=80 --target-port=8080 ile expose et; busybox:1.36 ile, çıkınca silinen ve yeniden başlamayan etkileşimli t pod'unda wget -qO- http://api:8000/saglik çalıştır.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl expose deployment web --type=NodePort --port=80 --target-port=8080
kubectl run -it --rm t --image=busybox:1.36 --restart=Never -- wget -qO- http://api:8000/saglikBeklenen çıktı
service/web exposed
{"durum":"ok"}
pod "t" deleted
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 API servisinde port: 8000 ve targetPort: http yazmak mümkün müdür?
- Yalnızca NodePort'ta
- Yalnızca HTTPS için
- Evet; container portu name: http ile adlandırıldıysa Doğru cevap
- Hayır, targetPort sayı olmalı
Açıklama: Adlandırılmış port, container portu değişse de servisi değiştirmeden çalışır.
2 Servisi yalnızca cluster içinde aç.
spec:
type: ____
spec:
type: ClusterIP
Açıklama: ClusterIP varsayılan ve iç türdür.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
api ClusterIP |
İç erişim |
web NodePort |
Dış erişim |
targetPort: http |
Adlandırılmış port |
wget http://api:8000 |
İç doğrulama |