Job nedir?
- Docker & Kubernetes kursu
- İleri seviye
- Ders 25/70
- 4 dk
Job'un biten görevleri çalıştırdığını öğrenirsin.
Job nedir?
Job, bir işi sonuna kadar çalıştırıp başarıyla biten pod'lar üretir: veritabanı göçü (migration), toplu veri işleme, rapor üretme. Deployment'tan farkı, pod bitince yeniden başlatılmaması ve Job'un "tamamlandı" olarak işaretlenmesidir. Pod başarısız olursa Job onu yeniden dener.
$ kubectl create job pi --image=perl:5.40 -- perl -Mbignum=bpi -wle "print bpi(50)"
$ kubectl get jobs
NAME STATUS COMPLETIONS DURATION AGE
pi Complete 1/1 8s 20s
$ kubectl logs job/pi
3.1415926535897932384626433832795028841971693993751Job'u izlemek
Bir Job'un bitmesini beklemek için kubectl wait kullanılır; CI hatlarında göç bitmeden uygulamanın dağıtılmasını önler. Biten Job ve pod'ları kalır; ttlSecondsAfterFinished onları belirli süre sonra otomatik siler:
kubectl wait --for=condition=complete job/goc --timeout=120s
kubectl logs job/goc
kubectl delete job gocUygulama Tek seferlik iş
Üç komut yaz: busybox:1.36 image'ıyla selam adlı Job'u echo merhaba komutuyla oluştur; Job'un tamamlanmasını 60 saniyelik zaman aşımıyla bekle; Job'un log'larını göster.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl create job selam --image=busybox:1.36 -- echo merhaba
kubectl wait --for=condition=complete job/selam --timeout=60s
kubectl logs job/selamBeklenen çıktı
job.batch/selam created job.batch/selam condition met merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir veritabanı göçünü Deployment yerine Job ile çalıştırmanın nedeni nedir?
- Job daha hızlıdır
- Deployment veritabanına bağlanamaz
- Job ücretsizdir
- Göç bir kez çalışıp bitmeli; Deployment biten pod'u yeniden başlatır Doğru cevap
Açıklama: Deployment sürekli çalışan süreçler içindir.
2 Job tamamlanana kadar bekle.
kubectl wait --for=condition=____ job/goc --timeout=120s
kubectl wait --for=condition=complete job/goc --timeout=120s
Açıklama: Job'un başarı koşulu Complete'tir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
Job |
Bitene kadar çalış |
Deployment |
Sürekli çalış |
COMPLETIONS 1/1 |
Başarıyla bitti |
kubectl wait |
Koşulu bekle |