JobとCronJob

JobとCronJobは、短期間の1回限りのタスク(短期間の1回限りのタスク)、つまり1回だけ実行されるタスクのバッチ処理を担当し、バッチタスクの1つ以上のポッドが正常に完了するようにします。

  • ジョブ:これは、Kubernetesがバッチタイプのタスクを制御するために使用するリソースオブジェクトです。バッチ処理ビジネスと長期サーボビジネス(Deployment、Statefulset)の主な違いは、バッチ処理ビジネスには始まりと終わりがあるのに対し、長期サーボビジネスはユーザーが停止することなく永遠に実行されることです。ジョブによって管理されているポッドは、ユーザーの設定に従ってタスクが正常に完了すると自動的に終了します(ポッドは自動的に削除されます)。
  • CronJob:これは時間ベースのジョブであり、Linuxシステムのcrontabファイルの行に似ており、指定された期間に指定されたジョブを実行します。
    使い果たされると停止するタスクロードのこの機能は、継続的な統合などの1回限りのタスクに特に適しています。

ジョブを作成する

以下は、πから2000桁を計算して出力するジョブ構成です。ジョブの最後に、50個のポッドを実行する必要があります。この例では、πを50回印刷し、5個のポッドを並行して実行します。ポッドに障害が発生した場合は、最大5回再試行できます。

apiVersion: batch/v1
kind: Job
metadata:
  name: pi-with-timeout
spec:
  completions: 50            # 运行的次数,即Job结束需要成功运行的Pod个数
  parallelism: 5             # 并行运行Pod的数量,默认为1
  backoffLimit: 5            # 表示失败Pod的重试最大次数,超过这个次数不会继续重试。
  activeDeadlineSeconds: 10  # 表示Pod超期时间,一旦达到这个时间,Job及其所有的Pod都会停止。
  template:                  # Pod定义
    spec: 
      containers:
      - name: pi
        image: perl
        command:
        - perl
        - "-Mbignum=bpi"
        - "-wle"
        - print bpi(2000)
      restartPolicy: Never

補完と並列処理の設定により、ジョブは以下のタイプに分類できます。

表1タスクタイプ

職種 説明 使用例
ワンタイムジョブ 正常に終了するまでポッドを作成します データベースの移行
終了カウントが固定されたジョブ ポッドを順番に作成し、完了が正常に完了するまで実行します ポッド処理ワークキュー
エンドカウントが固定された並列ジョブ 複数のポッドを順番に作成し、完了が正常に完了するまで実行します 複数のポッドが同時にワークキューを処理します
パラレルジョブ 1つが正常に終了するまで、1つ以上のポッドを作成します 複数のポッドが同時にワークキューを処理します

CronJobを作成する

Jobと比較すると、CronJobはタイミングが追加されたジョブであり、CronJobを実行すると、指定された時間にジョブが作成され、そのジョブによってポッドが作成されます。

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: cronjob-example
spec:
  schedule: "0,15,30,45 * * * *"           # 定时相关配置
  jobTemplate:                             # Job的定义
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
          - name: main
            image: pi

CronJobの形式は前から後ろです。

  • 時間
  • 曜日
  • 曜日
    「0,15,30,45 」は、コンマ分の前で区切られ、最初は時間を表し、2番目は月の日を表し、月は3番目、4番目を表します。曜日を表します。

毎月1日に30分ごとにタスクを実行する場合は、「0,30 1 」に設定できます。毎週日曜日の午前3時にタスクを実行する場合は、「03」に設定できます。 * 0 "。

CronJob形式の詳細については、https://zh.wikipedia.org/wiki/Cronを参照してください。

おすすめ

転載: blog.51cto.com/14051317/2553700