管理短暫的一次性工作(Job)

閱讀時間約 6 分鐘

本篇說明何謂Job:

raw-image
  1. Job的類型
  2. Job controller
  3. Job 格式
  4. 暫停與重啟Job
  5. 範例
  6. 應用場景

1. Job的類型

以下表格很清楚的說明不同的Job類型與行為:

raw-image

2. Job controller

根據Job Spec建立Pod,並且持續監控Pod的狀態,直到成功結束。如果失敗,就根據restartPolicy(只支援OnFailure和Never, 不支援Always)決定是否創建新的Pod再次重試任務。

raw-image

3. Job 格式

  • spec.template格式同Pod
  • RestartPolicy只支援Never 或OnFailure
  • 單個Pod時,預設Pod成功運行後Job就結束
  • .spec.completions標記的Job結束需要成功運行的Pod個數,預設為1
  • .spec.parallelism標記出並行運作的Pod個數,預設為1
  • spec.activeDeadlineSeconds標記出失敗Pod的重試最大時間,超過就不會再繼續重試
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
metadata:
name: pi
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
# kubectl create -f job.yaml -n job
# kubectl discribe job pi -n job
# kubectl get pod --show-all -l job-name=pi -n job

※ 利用jsonpath取得POD ID並查看日誌
# pod=$(kubectl get pod -n job --selector=job-name=pi --output=jsonpath={.items.metadata.name})
# kubectl logs $pods
raw-image

4.暫停與重啟Job

從v1.21之後,就可以透過.spec.suspend暫停和重啟Job

apiVersion: batch/v1
kind: Job
metadata:
name: myjob
spec:
suspoend: true
parallelism: 1
completions: 5
template:
spec:
....

當Job暫停之後,Job conditions中就會出現一條Job暫停的event:

# kubectl get jobs/myjob -o yaml
apiVersion: batch/v1
kind: Job
# .metadata and .spec omitted
status:
conditions:
- lastProbeTime: "2021-02-05T13:14:33Z"
lastTransitionTime: "2021-02-05T13:14:33Z"
status: "True"
type: Suspended
startTime: "2021-02-05T13:13:48Z"

5.範例

### 執行單一Job
apiVersion: batch/v1
kind: Job
metadata:
name: finalcountdown
spec:
template:
metadata:
name: finalcountdown
spec:
containers:
- name: counter
image: busybox
command:
- bin/sh
- -c
- "for i in 9 8 7 6 5 4 3 2 1 ; do echo $i ; done"
restartPolicy: Never
# kubectl create -f simplejob.yaml -n simple-job
# kubectl get job -n simple-job
NAME COMPLETIONS DURATION AGE
finalcountdown 1/1 6s 9s

# kubectl describe jobs/finalcountdown -n simple-job
# kubectl log finalcountdown-xxxxx
raw-image
raw-image

6.應用場景

由於Job主要用於管理一次性任務或批次性任務,可以想像到有以下應用場景可能會適用:

  • 批次任務:適用在需要定期執行的任務,例如資料清洗、ETL作業、日誌分析、備份任務。透過建立Job來確保任務只會運行一次,並且在成功後就會停止。
  • 容器化應用初始化:在Kubernetes中部署容器化應用時,可以用來執行初始化任務,例如初始化資料庫、載入設定、設定環境變數等等。當任務結束,應用服務就可以啟動應用服務本身的初始化。
  • 並行性的任務:可以使用Job來建立多個Pod,加快任務的執行速度。
  • 資源清理:在任務執行完畢後,可用來清理或刪除資源,例如刪除臨時檔案、關閉不需要的容器或執行資源釋放。

跟據需求的變化,Job還可以有更多可應用的場景,只要理解Job的應用特性就可以想出更多有彈性的做法來協助管理整個平台上的任務。

15會員
40內容數
記錄IT社畜的自我學習筆記,如同專題名稱,主要是怕自已忘記自已做過什麼、學到什麼。索性就分享我自已在學習Kubernetes這條路上的各種測試、學習心得。
留言0
查看全部
發表第一個留言支持創作者!
超健忘閒人的沙龍 的其他內容
今天來跟大家分享如何建置容器世界的一個非常重要的元件:Image Registry。
今天簡單演示如何在Kubernetes cluster利用local-path provider建構出storage class來提供應用程式進行資料的存放。
本篇將補完上一篇所提到關於StatefulSet的實作部份。
本篇將說明關於StatefulSet的基本概念
所謂daemonset,簡單來說就是在每個節點上部署一個Pod副本。當今天有新的主機節點加入時,就自動再上面部署一個Pod副本。移除節點時,也會自動將Pod副本移除。
本文將說明關於Local volume 與hostPath二種類型的差異與一些注意事項。
今天來跟大家分享如何建置容器世界的一個非常重要的元件:Image Registry。
今天簡單演示如何在Kubernetes cluster利用local-path provider建構出storage class來提供應用程式進行資料的存放。
本篇將補完上一篇所提到關於StatefulSet的實作部份。
本篇將說明關於StatefulSet的基本概念
所謂daemonset,簡單來說就是在每個節點上部署一個Pod副本。當今天有新的主機節點加入時,就自動再上面部署一個Pod副本。移除節點時,也會自動將Pod副本移除。
本文將說明關於Local volume 與hostPath二種類型的差異與一些注意事項。
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
在不同年紀間,我們面臨著類似的財務挑戰,從花錢到致富,再到家庭開支的管理。本文探討瞭如何透過有效的財務規劃,釐清投資與保險的選擇,並提供一對一的諮詢服務來提升財務健康。無論你是在職場初期還是已步入家庭,都能從中獲得寶貴的理財建議,以降低財務風險,並實現經濟自由。
Thumbnail
肝膽排石法是一種替代療法,旨在促進肝臟和膽囊中的結石排出。本文介紹了肝膽排石法的工作原理、健康益處及其對準新娘的影響,包括如何通過飲食、運動和專業醫療指導來提升婚禮當天的健康狀態和自信。有效的健康管理能幫助新娘更輕鬆地穿上理想的婚紗,展現最美的一面。
Thumbnail
當你剛學會技術分析時,可能會想趕快賺錢,但要提醒自己,短線交易需要合理的心態管理,否則容易陷入剛學會技術分析時過度交易瘋狂大賠的局面。這篇通過心理學家史金納的老鼠實驗,帶給你交易心態上的啟發。
Thumbnail
一直都很嚮往日本的古色古香,卻直到現在才親臨京都。 這次的自由行很特別,是我們全家人第一次全員到齊的海外旅遊。 可能太久沒帶家人出國,整個有點緊張,凌晨3點要起床,23點躺好床,但翻來覆去的我,真正入睡的時間可能是凌晨2點吧😅 抵達日本大阪,出關出乎我意料並沒有花太久的時間,但是兌換交通卡的窗
Thumbnail
本篇說明在Kubernetes平台上的Job資源類型的類型、實務、應用場景
Thumbnail
時間管理的重點不在短時間做多少事。時間本身並不能被管理,我們能夠管理的只是自己的行為和決策。
Thumbnail
彼得杜拉克這麼說:「要成為經理人,需要的不僅僅是一個頭銜,一間大辦公室或是其他外在的職務象徵,而是需要高度的能力與績效。」「經理人有兩項特殊任務:第一項任務是創造加乘效果,也就是創造一個能讓投入資源產生比加總之後更多效益的環境。第二項任務則是調和決策與行動的短期與長期需要。」
Thumbnail
DAY 85:人生4千個禮拜究竟是長還是短、夠不夠用?這本書和其他時間管理的書很不一樣~今天去吃了澳洲早餐~|2022.11.12 Saturday|布蘭達&維尼
Thumbnail
在職場中,主管可不只是把工作指派給員工即可,若想帶好團隊,讓團隊成員發揮所長,則需要了解每個員工的背景、專業所在、目標理想等…。而一個團隊可能是由幾個世代,六年級、七年級、八年級生所組成。 不同年代與文化背景下的同事看待事物與處理事務的心態不同,以下整理678年級生成長背景與期待的職場模樣!(全文皆
Thumbnail
管理顧問行業到底是什麼? 如果你對企業的運作方式,包含企業策略,結構,管理和運營感興趣,那麼從事管理諮詢的職業可能適合您。不過到底管理顧問的工作是什麼? 你可以想像管理顧問是企業和公司的醫生,主要客戶群則為全球五百大企業,為CFO,CEO,CIO與COO提供策略咨詢服務。
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
在不同年紀間,我們面臨著類似的財務挑戰,從花錢到致富,再到家庭開支的管理。本文探討瞭如何透過有效的財務規劃,釐清投資與保險的選擇,並提供一對一的諮詢服務來提升財務健康。無論你是在職場初期還是已步入家庭,都能從中獲得寶貴的理財建議,以降低財務風險,並實現經濟自由。
Thumbnail
肝膽排石法是一種替代療法,旨在促進肝臟和膽囊中的結石排出。本文介紹了肝膽排石法的工作原理、健康益處及其對準新娘的影響,包括如何通過飲食、運動和專業醫療指導來提升婚禮當天的健康狀態和自信。有效的健康管理能幫助新娘更輕鬆地穿上理想的婚紗,展現最美的一面。
Thumbnail
當你剛學會技術分析時,可能會想趕快賺錢,但要提醒自己,短線交易需要合理的心態管理,否則容易陷入剛學會技術分析時過度交易瘋狂大賠的局面。這篇通過心理學家史金納的老鼠實驗,帶給你交易心態上的啟發。
Thumbnail
一直都很嚮往日本的古色古香,卻直到現在才親臨京都。 這次的自由行很特別,是我們全家人第一次全員到齊的海外旅遊。 可能太久沒帶家人出國,整個有點緊張,凌晨3點要起床,23點躺好床,但翻來覆去的我,真正入睡的時間可能是凌晨2點吧😅 抵達日本大阪,出關出乎我意料並沒有花太久的時間,但是兌換交通卡的窗
Thumbnail
本篇說明在Kubernetes平台上的Job資源類型的類型、實務、應用場景
Thumbnail
時間管理的重點不在短時間做多少事。時間本身並不能被管理,我們能夠管理的只是自己的行為和決策。
Thumbnail
彼得杜拉克這麼說:「要成為經理人,需要的不僅僅是一個頭銜,一間大辦公室或是其他外在的職務象徵,而是需要高度的能力與績效。」「經理人有兩項特殊任務:第一項任務是創造加乘效果,也就是創造一個能讓投入資源產生比加總之後更多效益的環境。第二項任務則是調和決策與行動的短期與長期需要。」
Thumbnail
DAY 85:人生4千個禮拜究竟是長還是短、夠不夠用?這本書和其他時間管理的書很不一樣~今天去吃了澳洲早餐~|2022.11.12 Saturday|布蘭達&維尼
Thumbnail
在職場中,主管可不只是把工作指派給員工即可,若想帶好團隊,讓團隊成員發揮所長,則需要了解每個員工的背景、專業所在、目標理想等…。而一個團隊可能是由幾個世代,六年級、七年級、八年級生所組成。 不同年代與文化背景下的同事看待事物與處理事務的心態不同,以下整理678年級生成長背景與期待的職場模樣!(全文皆
Thumbnail
管理顧問行業到底是什麼? 如果你對企業的運作方式,包含企業策略,結構,管理和運營感興趣,那麼從事管理諮詢的職業可能適合您。不過到底管理顧問的工作是什麼? 你可以想像管理顧問是企業和公司的醫生,主要客戶群則為全球五百大企業,為CFO,CEO,CIO與COO提供策略咨詢服務。