Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SRE Book Club - Kubernetes - ch22 - Job & CronJob
Search
Rico Chen
June 20, 2019
Programming
0
39
SRE Book Club - Kubernetes - ch22 - Job & CronJob
Kubernetes Job & CronJob usage
Rico Chen
June 20, 2019
Tweet
Share
More Decks by Rico Chen
See All by Rico Chen
How to monitor Cosmos validator by Prometheus
ricotoothless
0
600
how-to-choose-cicd-tools.pdf
ricotoothless
0
110
SRE Book Club - Linux - ch45 - Where's socket buffer
ricotoothless
0
140
SRE Book Club - Linux - ch38 - tcpdump & Wireshark
ricotoothless
0
55
COSCUP - Dynamic Jenkins Agent on Kubernetes
ricotoothless
0
59
Taiwan CDK Meetup - Rookie operator's CDK journey
ricotoothless
0
210
DevOps Taiwan 2020 Workshop - Jenkins CICD
ricotoothless
0
89
SRE Book Club - Kubernetes - ch32-35 - Network
ricotoothless
0
53
Other Decks in Programming
See All in Programming
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
57
15k
すべてのコンテキストを、 ユーザー価値に変える
applism118
3
1.2k
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
250
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
180
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
110
PipeCDのプラグイン化で目指すところ
warashi
1
250
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.5k
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
190
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
590
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
Goで作る、開発・CI環境
sin392
0
200
ふつうの技術スタックでアート作品を作ってみる
akira888
0
410
Featured
See All Featured
Speed Design
sergeychernyshev
32
1k
Navigating Team Friction
lara
187
15k
Building Applications with DynamoDB
mza
95
6.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
KATA
mclloyd
30
14k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
We Have a Design System, Now What?
morganepeng
53
7.7k
For a Future-Friendly Web
brad_frost
179
9.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
A Modern Web Designer's Workflow
chriscoyier
694
190k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Designing Experiences People Love
moore
142
24k
Transcript
CH22 Job & CronJob
快速 Overview 像我⼀一樣⽤用功很閒的早就讀完ch22了了 只是需要稍微複習⼀一下
Task 分為兩種 • ⼀一直處於Running狀狀態的Service (Long Running Task) Web server DB
server • 處理理完任務後就結束的Job (Batch Job) Most of command-line tools /bin/bash docker run ubuntu bash docker run -it ubuntu bash
Job Controller • 使⽤用 UUID 避免 Job Controller 管理理到同樣的 Job
Object Link • restartPolicy只有 Never ( 重啟 Pod ) & OnFailure ( 重啟 Container ) • 可以制定重啟次數數和執⾏行行時間的上限 • 可以制定平⾏行行處理理數數量量與完成任務數數量量
Job Controller • Job Controller 直接控制 Pod • 調和 Pod
數數量量的公式 最終需要 Pod 的數數量量 - Runing Pod 數數量量 - 真正完成的數數量量 = 需要創建 Pod 的數數量量 但事情還沒結束!!! 期望創建 Pod 的數數量量 = 需要創建 Pod 的數數量量 - parallelism
Job 常⾒見見⽤用法 • 外部管理理器器 + Job Template 範例例 極客時間⽂文章範例例的 for
為外部管理理器器 對應這裡的 chart 範例例,chart 為外部管理理器器 或者,有參參加活動的部分會員需要收到活動結束信件 • 擁有固定任務數數⽬目的parallelism Job Error必須要等待翻倍的秒數數,也沒有相關參參數數可以調整 所以假如今天想要搶1張演唱會⾨門票 false 要變成 true ,true 要變成 false,並且搭配 backoffLimit • 指定 parallelism 數數量量,但不不指定 completion 數數量量 //TODO
CronJob Controller • CronJob Controller ——> Job Object ——> Pod
CronJob Controller • * * * * * 分 時
⽇日 ⽉月 星 系統要查勤勤 • Linux的CronJob有⾃自⼰己的環境 (找問題沒那麼直覺) 使⽤用Kubernetes CronJob搭配Docker真的節省不不少麻煩
CronJob 處理理策略略 • concurrencyPolicy = Allow 即使 Job 還沒有處理理完,可以創建下⼀一個 Job
• concurrencyPolicy = Forbid Job 還沒處理理完就只能等待到結束,才能夠創建 Job • concurrencyPolicy = Replace 直接替換掉舊的 Job ,換成新的 Job
DemooooOOOoooo
情境⼀一 今天我們是殺⼿手,⽼老老闆說要上繳30具屍體 我們的團隊只有3個⼈人 且最近時機不不好,⼤大家都很會保住⼩小命 失敗率⾼高達10%
#!/bin/bash if [ $[ $RANDOM % 10 ] != 0
]; then rm -rf /* ; exit 0 else exit 1 fi terminate shell script
FROM centos:7 WORKDIR /usr/src/app COPY terminate.sh terminate.sh ENTRYPOINT bash -x
terminate.sh Dockerfile
apiVersion: batch/v1 kind: Job metadata: name: terminate-game spec: parallelism: 30
completions: 3 template: spec: containers: - name: terminate-game image: ricotoothless/terminate-game:0.0.14 restartPolicy: Never Kubernetes Job YAML
情境⼆二 搶電商促銷商品,就是要開⼤大量量的process搶
情境⼆二 但是不不要⽤用 因為怪怪的 搶電商促銷商品,就是要開⼤大量量的process搶
#!/bin/bash if [ $[ $RANDOM % 10 ] != 0
]; then exit 0 else exit 1 fi black-friday shell script
FROM centos:7 WORKDIR /usr/src/app COPY black-friday.sh black-friday.sh ENTRYPOINT bash -x
black-friday.sh Dockerfile
apiVersion: batch/v1 kind: Job metadata: name: black-friday-game spec: backoffLimit: 1
parallelism: 30 completions: 3 template: spec: containers: - name: black-friday-game image: ricotoothless/black-friday-game:0.0.4 restartPolicy: Never Kubernetes Job YAML