すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:CronJobの作成

最終更新日:Dec 10, 2024

CronJobsは、定期的および定期的なタスクを作成するために使用されます。 たとえば、CronJobsを作成してバックアップ操作を実行したり、メールを送信したりできます。 ジョブは、短期間の1回限りのタスクを処理するために使用されます。 CronJobは、特定のスケジュールに基づいて1つ以上のジョブを作成します。 このトピックでは、CronJobを作成する方法について説明します。

ACKコンソールでCronJobを作成する

イメージからCronJobを作成する

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [CronJobs] を選択します。

  3. On theCronJobsページをクリックします。イメージから作成右上隅にあります。

  4. CronJobのパラメーターを設定します。

    1. [基本情報] ウィザードページで、基本設定を行います。 詳細については、「手順5: 基本設定の設定」をご参照ください。

    2. [コンテナー] ウィザードページで、1つ以上のコンテナーを設定します。 パラメーターの詳細については、「コンテナー設定」をご参照ください。

    3. On the高度なウィザードページで、詳細設定を構成します。

      カテゴリ

      パラメーター

      説明

      CronJobs

      スケジュール

      スケジュールは、時間単位、日単位、週単位、または月単位で指定できます。 cron式を指定することもできます。

      詳細については、「Cron式」をご参照ください。

      同時実行ポリシー

      ジョブを同時に実行するためのポリシー。 有効な値:

      • 許可: ジョブを同時に実行できるようにします。 同時ジョブはクラスターリソースを求めて競合します。

      • Forbid: ジョブを同時に実行できないようにします。 ジョブがスケジュール内で完了していない場合、次のジョブはスキップされます。

      • 置換: ジョブがスケジュール内で完了していない場合、ジョブはスキップされます。

      仕事の履歴

      レコードを保持するジョブの成功または失敗の数。 パラメーターを0に設定した場合、ジョブのレコードは保持されません。

      ジョブ設定

      Completions

      [ジョブ設定] セクションでパラメーターを設定する方法の詳細については、「ジョブ設定」をご参照ください。

      並列処理

      タイムアウト

      BackoffLimit

      Restart

      ラベル、注釈

      ポッドラベル

      キーと値のペアでポッドにラベルを追加できます。

      説明

      ラベルのキーは1 ~ 253文字で、英数字、ハイフン (-) 、アンダースコア (_) 、ピリオド (.) のみを使用できます。

      ポッド注釈

      キーと値のペアでポッドに注釈を追加できます。

      説明

      注釈のキーは1 ~ 253文字で、英数字、ハイフン (-) 、アンダースコア (_) 、およびピリオド (.) のみを使用できます。

  5. クリック作成.

    CronJobが作成されたら、CronJobページでCronJobを表示できます。

YAMLテンプレートからCronJobを作成する

  1. On theCronJobsページをクリックします。YAMLから作成する右上隅にあります。

  2. On the作成ページでDaemonSetを設定します。テンプレートセクションにアクセスします。

  3. クリック作成.

kubectlを使用してCronJobを作成する

kubectlを使用してCronJobを作成する前に、クラスターを作成し、kubectlをダウンロードしてから、kubectlクライアントを使用してクラスターに接続する必要があります。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。

次の表に、CronJobの作成に使用される主要なパラメーターを示します。

パラメーター

説明

.spec.schedule

This parameter is required. CronJobのスケジュールを指定します。 スケジュール形式の詳細については、「Cron schedule」をご参照ください。

. spec.jobTemplate

This parameter is required. 実行するジョブの種類を指定します。 ジョブタイプの詳細については、「ジョブパターン」をご参照ください。

.spec.suspend

このパラメーターはオプションです。 設定した後. spec.suspendその後のすべてのタスクは、CronJobコントローラーがタスクの中断を解除するまで中断されます。 つまり、これらのタスクはまだスケジューリングキューにありますが、CronJobコントローラーはこれらのタスクを実行するためにジョブを開始しません。

この設定は、すでに開始されているタスクには影響しません

説明

スケジューリング時間中に中断されたタスクは、失敗したタスクと見なされます。 あなたが変更するとき. spec.suspendからfalseと、. spec.startingDeadlineSecondsが設定されていない場合、失敗したタスクはすぐにスケジュールされます。

. spec.startingDeadlineSeconds

このパラメーターはオプションです。 ジョブを実行する必要がある期限を指定します。

. spec.concurrencyPolicy

このパラメーターはオプションです。 同時実行ポリシーを指定します。 有効な値: Allow、Forbid、およびReplace。

  • 許可: ジョブを同時に実行できます。 同時ジョブはクラスターリソースを求めて競合します。

  • 禁止: ジョブを同時に実行できないようにします。 ジョブがスケジュール内で完了していない場合、次のジョブはスキップされます。

  • 置換: ジョブがスケジュール内で完了していない場合、ジョブはスキップされます。

この例では、kubectlを使用してCronJobを作成する方法を示すために、helloという名前のCronJobを作成します。

  1. cronjob.yamlという名前のファイルを作成し、次のコンテンツをファイルにコピーします。

    apiVersion: batch/v1
    種類: CronJob
    メタデータ:
      name: こんにちは
    spec:
      スケジュール: "*/1 * * * *"
      jobTemplate:
        仕様:
          テンプレート:
            仕様:
              containers:
              -name: こんにちは
                image: busybox
                args:
                - /bin/sh
                - -c
                -日付; KubernetesクラスターからHelloをエコーする
              restartPolicy: OnFailure 
  2. 次のコマンドを実行してCronJobを作成します。

    kubectl create -f cronjob.yaml

    cronjob.batch/hello createdが返された場合、CronJobが作成されます。

次のステップ

CronJobを作成した後、次の操作を実行できます。

  • [操作] 列の [詳細] をクリックして、ジョブリストやイベントなどのCronJobに関する基本情報を表示します。

  • [操作] 列で、[詳細] > [YAMLで表示] を選択してCronJobのYAMLコンテンツを表示し、[詳細] > [スケール] を選択して並列実行するポッドの数を変更し、[詳細] > [削除] を選択してCronJobを削除します。

関連ドキュメント

CronJobsの詳細については、「CronJob」をご参照ください。