CodeBlanks Logo Icon CodeBlanks

Deployment nedir?

Deployment'ın Pod'ları yönettiğini öğrenirsin.

Deployment nedir?

Deployment, durumsuz (stateless) uygulamaları çalıştırmanın standart yoludur. Sen istenen pod şablonunu ve kopya sayısını verirsin; Deployment bir ReplicaSet oluşturur, ReplicaSet de pod'ları. Image'ı değiştirdiğinde Deployment yeni bir ReplicaSet açıp eski pod'ları kademeli olarak yenileriyle değiştirir.

Deployment (web)
 └── ReplicaSet (web-7c5b9f6d8)
      ├── Pod web-7c5b9f6d8-abcde
      ├── Pod web-7c5b9f6d8-fghij
      └── Pod web-7c5b9f6d8-klmno

Hiyerarşiyi görmek

Üç seviyeyi birlikte listelemek ve sahiplik zincirini görmek için:

$ kubectl get deploy,rs,pods -l app=web
NAME                  READY   UP-TO-DATE   AVAILABLE
deployment.apps/web   3/3     3            3
NAME                             DESIRED   CURRENT   READY
replicaset.apps/web-7c5b9f6d8    3         3         3
$ kubectl get pod web-7c5b9f6d8-abcde -o jsonpath='{.metadata.ownerReferences[0].kind}'
ReplicaSet

Uygulama Deployment oluştur

İki komut yaz: api:1.0 image'ıyla 2 kopyalı api deployment'ı oluştur; ardından app=api etiketli deployment, ReplicaSet ve pod'ları tek komutta listele.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl create deployment api --image=api:1.0 --replicas=2
kubectl get deploy,rs,pods -l app=api

Beklenen çıktı

deployment.apps/api created
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/api   2/2     2            2           12s
NAME                            DESIRED   CURRENT   READY   AGE
replicaset.apps/api-5d8f7c9b4   2         2         2       12s
NAME                      READY   STATUS    RESTARTS   AGE
pod/api-5d8f7c9b4-qrstu   1/1     Running   0          12s
pod/api-5d8f7c9b4-vwxyz   1/1     Running   0          12s

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Pod adındaki web-7c5b9f6d8-abcde parçalarından 7c5b9f6d8 neyi gösterir?

  • Node adını
  • Image sürümünü
  • Rastgele bir sayı
  • Pod şablonunun özetinden türeyen ReplicaSet kimliğini Doğru cevap

Açıklama: Şablon değişince yeni özet, yeni ReplicaSet demektir.

2 Deployment, ReplicaSet ve pod'ları birlikte listele.

Soru
kubectl get deploy,____,pods -l app=web
Cevap
kubectl get deploy,rs,pods -l app=web

Açıklama: rs, replicasets'in kısaltmasıdır.

3 Eşleştir.

Kavram Anlamı
Deployment Sürüm ve güncelleme yönetir
ReplicaSet Kopya sayısını korur
Pod Container'ları çalıştırır
ownerReferences Sahiplik zinciri

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