Job YAML
- Docker & Kubernetes kursu
- İleri seviye
- Ders 26/70
- 4 dk
Job YAML yapısını öğrenirsin.
Job YAML
Job batch/v1 grubundadır. Pod şablonunda restartPolicy Never ya da OnFailure olmalıdır (Always geçersizdir). backoffLimit başarısız denemelerin üst sınırıdır:
apiVersion: batch/v1
kind: Job
metadata:
name: goc
spec:
backoffLimit: 3
template:
spec:
restartPolicy: Never
containers:
- name: goc
image: api:1.0
command: ["python", "manage.py", "migrate"]
Never'da her deneme yeni bir pod'dur (log'lar korunur); OnFailure'da aynı pod içinde container yeniden başlatılır.
Süre sınırı ve temizlik
activeDeadlineSeconds, Job'un toplam çalışma süresini sınırlar; süre dolunca tüm pod'lar sonlandırılır. ttlSecondsAfterFinished biten Job'u (pod'larıyla) belirli süre sonra siler:
spec:
backoffLimit: 3
activeDeadlineSeconds: 600 # en fazla 10 dakika
ttlSecondsAfterFinished: 3600 # bitişten 1 saat sonra sil
template:
...Uygulama Göç Job'u
Bir Job YAML'ı yaz: adı goc; backoffLimit: 3; pod şablonunda restartPolicy: Never; container adı goc, image api:1.0, command: ["python", "manage.py", "migrate"].
Başlangıç kodu
# buraya yazÖrnek çözüm
apiVersion: batch/v1
kind: Job
metadata:
name: goc
spec:
backoffLimit: 3
template:
spec:
restartPolicy: Never
containers:
- name: goc
image: api:1.0
command: ["python", "manage.py", "migrate"]Beklenen çıktı
job.batch/goc created $ kubectl logs job/goc Applying migrations... OK
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 backoffLimit: 3 olan Job dört kez başarısız olursa ne olur?
- Deployment'a dönüşür
- Başarılı sayılır
- Job Failed olarak işaretlenir ve yeniden denemez Doğru cevap
- Sonsuza kadar dener
Açıklama: Denemeler arasında bekleme süresi katlanarak artar.
2 Job pod'unda yeniden başlatmayı kapat.
spec:
restartPolicy: ____
spec:
restartPolicy: Never
Açıklama: Job'larda Always geçersizdir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
batch/v1 |
Job ve CronJob grubu |
backoffLimit |
Deneme sınırı |
activeDeadlineSeconds |
Toplam süre sınırı |
ttlSecondsAfterFinished |
Otomatik temizlik |