Job

Bir Job objesi, bir veya daha fazla pod oluşturur ve belirli sayıda pod başarıyla sonlandırılana kadar pod yürütmeyi yeniden denemeye devam eder. Job belirtilen sayıda pod'un başarıyla tamamlanma durumunu izler. Belirtilen sayıda başarıyla tamamlamaya ulaşıldığında, Job (yeni görev) tamamlanır. Bir Job'un silinmesi, oluşturduğu podları temizleyecektir.

Bir Job, aşağıdaki bileşenleri içerir:

  1. Pod Şablonu: Job, belirtilen pod şablonunu kullanarak işin gerçekleştirileceği podları oluşturur.

  2. Tamamlama Kriterleri: Job, işin tamamlandığını belirlemek için tamamlama kriterlerini kullanır. Varsayılan olarak, bir Job tamamlandığında başarılı olarak kabul edilir.

  3. Yeniden Başlatma Politikası: Bir Job, tamamlanmadığı takdirde veya hata durumunda yeniden başlatılma politikasına sahip olabilir.

Uygulama

apiVersion: batch/v1
kind: Job
metadata:
  name: my-parallel-job
spec:
  parallelism: 5
  completions: 10
  backoffLimit: 3
  activeDeadlineSeconds: 600
  template:
    spec:
      containers:
      - name: my-job-container
        image: my-image
        command: ["my-command"]
      restartPolicy: Never

Bu örnekte, "my-parallel-job" adında bir Job tanımlanmıştır.

  • parallelism: 5: İşin eşzamanlı olarak kaç podda çalıştırılacağını belirtir. 5 pod eşzamanlı olarak çalıştırılacaktır.

  • completions: 10: İşin toplamda tamamlanacak pod sayısını belirtir. Toplamda 10 tamamlama gerçekleştirilecektir.

  • backoffLimit: 3: Bir pod hatalı bir şekilde tamamlandığında kaç kez yeniden başlatılabileceğini belirtir. Pod 3 kez yeniden başlatılabilir.

  • activeDeadlineSeconds: 600: İşin maksimum çalışma süresini saniye cinsinden belirtir. 00 saniye (10 dakika) içinde iş tamamlanmazsa iş sonlandırılır.

İlgili YAML dosyasını kullanarak Job'i Kubernetes kümelerine uygulayabilirsiniz:

kubectl apply -f job.yaml

Bu komutla, job.yaml dosyasındaki Job tanımı Kubernetes kümelerine uygulanır.

Job'in durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:

kubectl get jobs

Bu komutla, mevcut Job'ları listeler ve durumlarını gösterir. Tamamlanan podlarla ilgili bilgileri görüntülemek için kubectl describe job my-parallel-job komutunu kullanabilirsiniz.

Bu örnek, paralel çalışan bir Job tanımlamasını göstermektedir. İş parçacığı düzeyinde eşzamanlılığı, tamamlanacak pod sayısını, yeniden başlatma sınırlamasını ve maksimum çalışma süresini belirlemenize olanak sağlar.

Last updated