⏲️

【OpenShift】1 回限りのタスクのジョブをデプロイする

に公開

0.はじめに

OpenShiftにおいて、Job は1回限りのタスクを実行するためのリソースです。

データ処理、バッチ計算、データベースの移行、バックアップ、メンテナンスタスクなど、定期的ではなく一度きりの処理に適しています。

この記事では、OpenShiftでJobを作成し、タスクをデプロイする方法について詳細に解説します。

では、次の章から具体的な解説を進めます!

1. Jobの概要

OpenShiftにおけるJob は、指定したタスクを1回限りで実行し、その実行が完了した後に終了します。タスクが正常に完了するまで、Podが必要に応じて再起動されます。

失敗時には再試行回数を設定できるため、柔軟な管理が可能です。

Jobを使ったタスクの例

  • データ処理: バッチジョブによるデータ集計や解析
  • バックアップ: 定期的なデータのバックアップ処理
  • 移行: データベースのデータ移行作業

2.Jobの作成とデプロイ手順

  1. 開発者権限でログイン

まず、OpenShiftクラスターに開発者権限でログインします。

oc login -u developer -p developer https://api.crc.testing:6443
  1. Jobの作成
    以下のコマンドを使用して、Job を作成します。ここでは、binami/apache イメージを使って ls コマンドを実行するジョブを作成します。
oc create job one-time-tasks --dry-run=client -o yaml --image=bitnami/apache -- ls

--dry-run=client は、実際にジョブを作成せず、ジョブが作成される際のYAMLマニフェストが表示されるオプションです。

  1. JobのYAMLをファイルに保存
oc create job one-time-tasks --dry-run=client -o yaml --image=bitnami/apache -- ls > my-job.yaml

作成したJobのYAMLマニフェストを my-job.yaml ファイルに保存します。これにより、後からファイルを編集して再利用できます。

  1. Jobのデプロイ

保存したYAMLファイルを適用して、実際にJobをデプロイします。

oc create -f my-job.yaml

3.Jobのモニタリングと監視

ジョブが実行中の場合、その状態を確認するために以下のコマンドを使用できます。

  1. Jobの状態確認
oc get jobs

ジョブが正常に完了したか、エラーが発生したかなどの情報を確認できます。

  1. Podの確認

ジョブによって作成されたPodの状態を確認します。

oc get pods
  1. Podのログ確認

Podが実行した処理の結果やエラーを確認するには、以下のコマンドを使用します。

oc logs <podname>

4.Jobの並行処理と完了

Jobが並行して処理を行う場合、my-job.yaml を修正することで、並行処理数や終了条件などを設定できます。

vi my-job.yaml

例えば、並行して実行するPodの数や目標の完了数を指定します。

apiVersion: batch/v1
kind: Job
metadata:
  name: one-time-tasks
spec:
  parallelism: 3
  completions: 3
  backoffLimit: 4
  template:
    spec:
      containers:
      - name: apache
        image: bitnami/apache
        command: ["ls"]
      restartPolicy: OnFailure

5.Jobの失敗とクリーンアップ

ジョブが完了したら、そのリソースを削除してクリーンアップすることができます。

oc delete job one-time-tasks

これで、ジョブとその関連リソース(Podなど)が削除されます。

6.おわりに

OpenShiftのJob は、1回限りのタスクを実行するために非常に便利なリソースです。

データ処理、バックアップ、メンテナンスタスクなどのシナリオで活用できます。作成から監視、並行処理、クリーンアップまで、実行の流れをしっかりと把握することが重要です。

1回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。

今後もOpenShiftについて解説していきます。

おわりっ!

参考サイト

Discussion