Kubernetes の job はバッチ処理を実行する pod を管理します。ある時間になると実行されるプロセスで、たとえば計算やバックアップ操作を完了するために実行されます。

countdown という名前の job を作成しましょう。これは 9 から 1 にカウントダウンする pod を管理します。

$ kubectl apply -f https://raw.githubusercontent.com/openshift-evangelists/kbe/master/specs/jobs/job.yaml

job とそれが面倒を見ている pod は次のように確認できます。

$ kubectl get jobs
NAME                      DESIRED   SUCCESSFUL   AGE
countdown                 1         1            5s

$ kubectl get pods --show-all
NAME                            READY     STATUS      RESTARTS   AGE
countdown-lc80g                 0/1       Completed   0          16s

job のステータスについて詳細を知るには、以下のようにします。

$ kubectl describe jobs/countdown
Name:           countdown
Namespace:      default
Image(s):       centos:7
Selector:       controller-uid=ff585b92-2b43-11e7-b44f-be3e8f4350ff
Parallelism:    1
Completions:    1
Start Time:     Thu, 27 Apr 2017 13:21:10 +0100
Labels:         controller-uid=ff585b92-2b43-11e7-b44f-be3e8f4350ff
                job-name=countdown
Pods Statuses:  0 Running / 1 Succeeded / 0 Failed
No volumes.
Events:
  FirstSeen     LastSeen        Count   From                    SubobjectPath   Type            Reason                  Message
  ---------     --------        -----   ----                    -------------   --------        ------                  -------
  2m            2m              1       {job-controller }                       Normal          SuccessfulCreate        Created pod: countdown-lc80g

そして、job の出力をそれが管理している pod から確認するには、以下を実行します。

kubectl logs countdown-lc80g
9
8
7
6
5
4
3
2
1

クリーンアップのため、delete コマンドを job オブジェクトに実行します。job が管理している pod もすべて削除されます。

$ kubectl delete job countdown
job "countdown" deleted

job の使用には他にも高度な方法があります。たとえば、work queue を活用したり、cron jobs で特定の時間に実行するようスケジュールしたりできます。

前へ | 次へ