CodeBlanks Logo Icon CodeBlanks

Deployment YAML

Deployment YAML yapısını öğrenirsin.

Deployment YAML

Deployment'ın spec'inde üç önemli parça vardır: replicas, hangi pod'ların ona ait olduğunu belirleyen selector ve yeni pod'ların kalıbı olan template. Şablondaki etiketler selector'la eşleşmek zorundadır:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: nginx
          image: nginx:1.27
          ports:
            - containerPort: 80

Kaynak istekleri ve sınırları

Üretimde her container için resources yazılır. requests zamanlayıcının ayırdığı garantili miktardır; limits aşılamaz üst sınırdır (bellek sınırını aşan container OOMKilled olur):

          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 256Mi

100m = 0.1 CPU çekirdeği; Mi = mebibayt.

Uygulama Deployment YAML'ı yaz

Bir Deployment YAML'ı yaz: adı web, replicas: 3; selector ve şablon etiketi app: web; container adı nginx, image nginx:1.27, containerPort: 80.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: nginx
          image: nginx:1.27
          ports:
            - containerPort: 80

Beklenen çıktı

deployment.apps/web created

Soru ve cevaplar

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

1 selector.matchLabels app: web iken template etiketi app: api olursa ne olur?

  • Sorunsuz çalışır
  • Selector otomatik düzeltilir
  • API sunucusu nesneyi reddeder Doğru cevap
  • Pod'lar oluşur ama sayılmaz

Açıklama: "selector does not match template labels" hatası alınır.

2 Yeni pod'ların kalıbını tanımlayan alanı yaz.

Soru
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  ____:
    metadata:
      labels:
        app: web
Cevap
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web

Açıklama: template bir pod tanımıdır (metadata + spec).

3 Eşleştir.

Kavram Anlamı
replicas Kopya sayısı
selector Hangi pod'lar benim
template Pod kalıbı
requests Garantili kaynak

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