【OpenShift】1 回限りのタスクのジョブをデプロイする
0.はじめに
OpenShiftにおいて、Job は1回限りのタスクを実行するためのリソースです。
データ処理、バッチ計算、データベースの移行、バックアップ、メンテナンスタスクなど、定期的ではなく一度きりの処理に適しています。
この記事では、OpenShiftでJobを作成し、タスクをデプロイする方法について詳細に解説します。
では、次の章から具体的な解説を進めます!
1. Jobの概要
OpenShiftにおけるJob は、指定したタスクを1回限りで実行し、その実行が完了した後に終了します。タスクが正常に完了するまで、Podが必要に応じて再起動されます。
失敗時には再試行回数を設定できるため、柔軟な管理が可能です。
Jobを使ったタスクの例
- データ処理: バッチジョブによるデータ集計や解析
- バックアップ: 定期的なデータのバックアップ処理
- 移行: データベースのデータ移行作業
2.Jobの作成とデプロイ手順
- 開発者権限でログイン
まず、OpenShiftクラスターに開発者権限でログインします。
oc login -u developer -p developer https://api.crc.testing:6443
-
Jobの作成
以下のコマンドを使用して、Jobを作成します。ここでは、binami/apacheイメージを使ってlsコマンドを実行するジョブを作成します。
oc create job one-time-tasks --dry-run=client -o yaml --image=bitnami/apache -- ls
--dry-run=client は、実際にジョブを作成せず、ジョブが作成される際のYAMLマニフェストが表示されるオプションです。
- 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 ファイルに保存します。これにより、後からファイルを編集して再利用できます。
- Jobのデプロイ
保存したYAMLファイルを適用して、実際にJobをデプロイします。
oc create -f my-job.yaml
3.Jobのモニタリングと監視
ジョブが実行中の場合、その状態を確認するために以下のコマンドを使用できます。
- Jobの状態確認
oc get jobs
ジョブが正常に完了したか、エラーが発生したかなどの情報を確認できます。
- Podの確認
ジョブによって作成されたPodの状態を確認します。
oc get pods
- 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