CodeBlanks Logo Icon CodeBlanks

Birleştirme - çok katmanlı

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 magaza

Uç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:30080

Uygulama 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

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl apply -f k8s/
kubectl rollout status deployment/api -n magaza
kubectl get all -n magaza
minikube service web -n magaza --url

Beklenen çı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.

Soru
kubectl run -n magaza deneme ____ -it --image=curlimages/curl:8.10.1 --restart=Never -- curl -s http://api:8000/saglik
Cevap
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

Orta seviye bölümündeki tüm dersler