Birleştirme - çok katmanlı
- Docker & Kubernetes kursu
- Orta seviye
- Ders 71/82
- 5 dk
Tüm kaynakları apply ederek uygulamayı dağıtırsın.
Birleştirme: çok katmanlı dağıtım
Tüm dosyalar hazır. Dağıtım sırası: namespace, secret (komutla), ayarlar, veritabanı, API, web. Sonra her şeyin hazır olduğu doğrulanır:
kubectl apply -f k8s/00-namespace.yaml
kubectl create secret generic db-gizli -n magaza --from-literal=POSTGRES_PASSWORD="$DB_PAROLA"
kubectl apply -f k8s/
kubectl rollout status deploy/db deploy/api deploy/web -n magaza
kubectl get all -n magazaUçtan uca sınama
Son adım, isteğin web → API → veritabanı yolunu baştan sona izlediğini görmektir. Geçici bir container cluster içinden API'yi çağırır; tarayıcıdan ise web servisi açılır:
kubectl run -n magaza deneme --rm -it --image=curlimages/curl:8.10.1 --restart=Never -- curl -s http://api:8000/saglik
{"durum":"ok","veritabani":"bagli"}
minikube service web -n magaza --url
http://192.168.49.2:30080Uygulama Dağıt ve doğrula
Dört komut yaz: k8s/ klasörünü uygula; magaza namespace'inde api deployment'ının dağıtımının bitmesini bekle; magaza'daki tüm temel nesneleri listele; web servisinin adresini minikube service ile tarayıcı açmadan yazdır.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl apply -f k8s/
kubectl rollout status deployment/api -n magaza
kubectl get all -n magaza
minikube service web -n magaza --urlBeklenen çıktı
namespace/magaza unchanged configmap/api-ayar created deployment.apps/db created service/db created deployment.apps/api created deployment.apps/web created service/web created deployment "api" successfully rolled out NAME READY STATUS RESTARTS AGE pod/api-7f8c9d6b5-abcde 1/1 Running 0 40s pod/db-6c5d4b3a2-fghij 1/1 Running 0 41s http://192.168.49.2:30080
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 kubectl apply -f k8s/ ikinci kez çalıştırılırsa ne olur?
- Her şey yeniden oluşturulur
- Hata verir
- Veritabanı silinir
- Yalnızca değişen nesneler güncellenir; diğerleri "unchanged" kalır Doğru cevap
Açıklama: apply idempotenttir.
2 Geçici pod'u iş bitince sil.
kubectl run -n magaza deneme ____ -it --image=curlimages/curl:8.10.1 --restart=Never -- curl -s http://api:8000/saglik
kubectl run -n magaza deneme --rm -it --image=curlimages/curl:8.10.1 --restart=Never -- curl -s http://api:8000/saglik
Açıklama: --rm, -it ile birlikte çıkışta pod'u siler.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
00-namespace.yaml |
İlk uygulanır |
create secret |
Depo dışı gizli |
rollout status |
Hazır mı bekle |
curl http://api:8000 |
İç uçtan uca test |