Deployment YAML
- Docker & Kubernetes kursu
- Orta seviye
- Ders 26/82
- 4 dk
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: 256Mi100m = 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
# buraya yazÖrnek çözüm
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: 80Beklenen çı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.
spec:
replicas: 3
selector:
matchLabels:
app: web
____:
metadata:
labels:
app: web
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 |