Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CronJobがschedule通りにJobを生成しない時

 CronJobがschedule通りにJobを生成しない時

Kubernetes Novice Tokyo #14 のLT枠の登壇資料です。

TajimaTheMemer

October 19, 2021
Tweet

More Decks by TajimaTheMemer

Other Decks in Programming

Transcript

  1. CronJobがschedule通りに
 Jobを生成しない時
 Kubernetes Novice Tokyo #14 2021/10/19 
 
 株式会社ZOZO


    技術本部 データシステム部
 MLOpsブロック
 田島 太一 Copyright © ZOZO, Inc.
  2. © ZOZO, Inc. https://zozo.jp/
 3 • ファッション通販サイト
 • 1,400以上のショップ、8,400以上のブランドの取り扱い
 •

    常時83万点以上の商品アイテム数と毎日平均2,900点以上の新着 商 品を掲載(2021年6月末時点)
 • ブランド古着のファッションゾーン「ZOZOUSED」や
 コスメ専門モール「ZOZOCOSME」、靴の専門モール
 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン
 「ZOZOVILLA」を展開
 • 即日配送サービス
 • ギフトラッピングサービス
 • ツケ払い など

  3. © ZOZO, Inc. https://wear.jp/
 4 • ファッションコーディネートアプリ
 • 1,500万ダウンロード突破、コーディネート投稿総数は1,000万件以上 (2021年6月末時点)


    • ピックアップタグから最新のトレンドをチェック
 • コーディネート着用アイテムをブランド公式サイトで購入可能
 • WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレント・デザ イナー・インフルエンサーといった各界著名人も参加

  4. © ZOZO, Inc. schedule指定の時刻じゃないのにJobを生成してしまうケース①
 具体例
 • 毎日8:00(UTC)に実行されるscheduleに設定していた。
 • 10/18 6:00(UTC)

    に、scheduleを毎日8:00(UTC) → 毎日9:00(UTC)実行に変更し kubectl applyした。すると、即座にJobが生成された。
 
 lastScheduleTimeの日時(10/17 8:00)
 ↓
 変更前のscheduleの次回予定日時(10/18 8:00)
 ↓
 変更後のscheduleの次回予定日時(10/18 9:00)
 19
  5. © ZOZO, Inc. schedule指定の時刻じゃないのにJobを生成してしまうケース①
 なぜ...? CronJobの仕様です。
 ただし、Kubernetes 1.20からalphaで使用できるCronJob Controller v2ではこの

    挙動は発生しません。※alphaなのでご注意 
 
 
 20 参考: https://github.com/kubernetes/kubernetes/issues/65457#issuecomment-400984574
  6. © ZOZO, Inc. schedule指定の時刻じゃないのにJobを生成してしまうケース②
 具体例
 • 8:00〜9:00は開始時刻として許容する設定になっていた。
 ◦ 毎日8:00(UTC)に実行されるscheduleを設定していた。
 ◦

    startingDeadlineSecondsに3600秒(=1時間)を設定していた。
 • ある日の8:30にsuspend: true → falseに変更しkubectl applyした。するとJobが即 座に生成された。
 
 
 25
  7. © ZOZO, Inc. 参考
 • Kubernetes公式ドキュメント: CronJob • CronJob v2

    ControllerのPull Request • mercari engineering: Kubernetes CronJobと仲良くなりたい
 34