🍣

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

2 min read

はじめに

くーばねてすを倒すために今回は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 名前

まとめ

眠い(^^)/