Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SRE Book Club - Kubernetes - ch22 - Job & CronJob
Search
Rico Chen
June 20, 2019
Programming
52
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SRE Book Club - Kubernetes - ch22 - Job & CronJob
Kubernetes Job & CronJob usage
Rico Chen
June 20, 2019
More Decks by Rico Chen
See All by Rico Chen
How to monitor Cosmos validator by Prometheus
ricotoothless
0
670
how-to-choose-cicd-tools.pdf
ricotoothless
0
140
SRE Book Club - Linux - ch45 - Where's socket buffer
ricotoothless
0
200
SRE Book Club - Linux - ch38 - tcpdump & Wireshark
ricotoothless
0
82
COSCUP - Dynamic Jenkins Agent on Kubernetes
ricotoothless
0
72
Taiwan CDK Meetup - Rookie operator's CDK journey
ricotoothless
0
280
DevOps Taiwan 2020 Workshop - Jenkins CICD
ricotoothless
0
110
SRE Book Club - Kubernetes - ch32-35 - Network
ricotoothless
0
76
Other Decks in Programming
See All in Programming
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
200
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
410
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
170
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
170
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
12
7.7k
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
310
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
1.7k
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
110
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
6k
Jetpack Compose Mechanisms
skydoves
3
900
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
310
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
1
270
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
510
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
380
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Scaling GitHub
holman
464
140k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Mind Mapping
helmedeiros
1
420
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Chasing Engaging Ingredients in Design
codingconduct
0
380
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
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