🍣

kubernetesのクローンジョブマニュフェストの書き方

2021/03/09に公開

はじめに

くーばねてすを倒すために今回はkubernetesのクローンジョブの動きとマニフェストの書き方をちょっとまとめた!(^^)!

概要

■クローンジョブとは
■クローンジョブマニュフェストの書き方
■クローンジョブに関するコマンド

をまとめた(^^)/

■クローンジョブとは

クローンジョブは設定されたスケジュール時間に従ってジョブを実行するコントローラーだ。
使い方としては*時にデータベースのバックアップをとる。*時間に一回処理を実行するというように定められた時間にジョブを実行することができる。

■クローンジョブマニュフェストの書き方

https://v1-18.docs.kubernetes.io/ja/docs/concepts/workloads/controllers/cron-jobs/
https://v1-18.docs.kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

クローンジョブの設定項目
|設定項目|意味|
| --- | --- | --- |
|schedule|Cronのフォーマットでスケジュールの指定をする。|
|jobTemplate|CronJobがJobを作成する際のJobのテンプレートを指定する|
|startingDeadlineSeconds|何らかの理由でJobがスケジュールされるのが遅れた際に許容できる時間を指定する|
|concurrencyPolicy|Jobの並行実行ポリシーを指定する.Allow,Forbid,Replace.デフォルトは Allow だ。|
|suspend|CronJobのスケジューリングの対象とするかを指定する。true にするとスケジュールの対象外とされる。デフォルトは false だ|
|failedJobsHistoryLimit|異常終了したJobの履歴保有数を指定する。デフォルトは1だ。|

cron形式での指定方法
https://en.wikipedia.org/wiki/Cron
日時の指定

           ┌─────────────分(0〜59)
           │ ┌─────────────時間(0〜23)
           │ │ ┌─────────────月の日(1〜31)
           │ | │ ┌─────────────月(1〜12)
           │ │ | | ┌─────────────曜日(0〜6)(日曜日から土曜日。
           │ │ │ | |7は一部のシステムでは日曜日でもあります)
           │ │ │ | |
           │ │ │ | |
schedule: "* * * * *" 

|指定|例|意味|
| --- | --- | --- | --- |
|リスト|0,10,45|分では0分、10分、45分に実行|
|範囲指定|6-9|月では6月から9月に実行|
|共存|1,6-9|月では1月、6月から9月に実行|
|間隔指定|*/5|分では5分ごとに実行する|

■クローンジョブに関するコマンド

クローンジョブを一覧表示

$ kubectl get cronjob

クローンジョブの実行状態を含め表示する

$ kubectl describe cronjobs 名前

クローンジョブを削除する

$ kubectl delete cronjobs 名前

まとめ

眠い(^^)/

Discussion