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

更新 發佈閱讀 6 分鐘

本篇說明何謂Job:

vocus|新世代的創作平台
  1. Job的類型
  2. Job controller
  3. Job 格式
  4. 暫停與重啟Job
  5. 範例
  6. 應用場景

1. Job的類型

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

vocus|新世代的創作平台

2. Job controller

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

vocus|新世代的創作平台

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
vocus|新世代的創作平台

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
vocus|新世代的創作平台
vocus|新世代的創作平台

6.應用場景

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

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

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

留言
avatar-img
超健忘閒人的沙龍
15會員
40內容數
記錄IT社畜的自我學習筆記,如同專題名稱,主要是怕自已忘記自已做過什麼、學到什麼。索性就分享我自已在學習Kubernetes這條路上的各種測試、學習心得。
2024/05/08
本文將介紹如何在Gitlab上部署和註冊runner,以進行CI/CD測試。透過Docker-compose方式進行部署,同時注意安裝時的一些注意事項。建議學習者至少掌握一種以上的Pipeline工具,以滿足實務上的需求。
Thumbnail
2024/05/08
本文將介紹如何在Gitlab上部署和註冊runner,以進行CI/CD測試。透過Docker-compose方式進行部署,同時注意安裝時的一些注意事項。建議學習者至少掌握一種以上的Pipeline工具,以滿足實務上的需求。
Thumbnail
2024/04/19
上一篇說明了如何在Kubernetes上建立基本的MySQL standalone,並加入phpmyadmin(PMA)來進行圖形化的管理,本篇就再進階一步,實作MySQL replication架構(master-salve),並進行驗證是否成功。
Thumbnail
2024/04/19
上一篇說明了如何在Kubernetes上建立基本的MySQL standalone,並加入phpmyadmin(PMA)來進行圖形化的管理,本篇就再進階一步,實作MySQL replication架構(master-salve),並進行驗證是否成功。
Thumbnail
2024/04/09
本文記錄如何在Kubernetes環境下,部署Standalone架構的MySQL Database,並透過phpmyadmin進行管理。這篇文章將分成MySQL部署在K8S內的優勢、部署MySQL DB standalone、部署PhpMyAdmin (PMA)、結論四個部分進行說明與實作的流程。
Thumbnail
2024/04/09
本文記錄如何在Kubernetes環境下,部署Standalone架構的MySQL Database,並透過phpmyadmin進行管理。這篇文章將分成MySQL部署在K8S內的優勢、部署MySQL DB standalone、部署PhpMyAdmin (PMA)、結論四個部分進行說明與實作的流程。
Thumbnail
看更多
你可能也想看
Thumbnail
在上回,我們已經把工作視覺化成看板,但這只是第一步,要想用看板方法優化工作的流程,我們得設置 WIP 限制,讓團隊開始知道瓶頸在哪裡,然後才能開始改善,這一回就來看 WIP 限制的設置。
Thumbnail
在上回,我們已經把工作視覺化成看板,但這只是第一步,要想用看板方法優化工作的流程,我們得設置 WIP 限制,讓團隊開始知道瓶頸在哪裡,然後才能開始改善,這一回就來看 WIP 限制的設置。
Thumbnail
本文探討專案管理的真正意義,以及專案經理真正的價值是什麼。同時討論專案經理必修的最重要技能。
Thumbnail
本文探討專案管理的真正意義,以及專案經理真正的價值是什麼。同時討論專案經理必修的最重要技能。
Thumbnail
在上一回 說明看板方法相關的精實精神與原則與實務,這一回則是來設計看板,包含看板的範圍應該多廣、有哪些狀態、工作的顆粒度,以及 DoD 的呈現。
Thumbnail
在上一回 說明看板方法相關的精實精神與原則與實務,這一回則是來設計看板,包含看板的範圍應該多廣、有哪些狀態、工作的顆粒度,以及 DoD 的呈現。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
在部門管理中,文件化將部門職掌呈現出來,是非常、非常、非常關鍵的作業。本文將說明為何要定義與如何定義部門職掌的方式。
Thumbnail
在部門管理中,文件化將部門職掌呈現出來,是非常、非常、非常關鍵的作業。本文將說明為何要定義與如何定義部門職掌的方式。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本篇說明在Kubernetes平台上的Job資源類型的類型、實務、應用場景
Thumbnail
本篇說明在Kubernetes平台上的Job資源類型的類型、實務、應用場景
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
企業面對大專案時,將其分解成可執行的小任務,有助於實現目標。以提升銷售額為例,拆解為四個要素,並提供增加流量、轉換率、客單價和回購率的策略。另外,還必須設計可量化的指標及追蹤回饋。這些建議對於創作型工作和知識型工作者來說,同樣可以利用該策略來提高工作效率。
Thumbnail
企業面對大專案時,將其分解成可執行的小任務,有助於實現目標。以提升銷售額為例,拆解為四個要素,並提供增加流量、轉換率、客單價和回購率的策略。另外,還必須設計可量化的指標及追蹤回饋。這些建議對於創作型工作和知識型工作者來說,同樣可以利用該策略來提高工作效率。
Thumbnail
我們可能會有一種迷思,不管開發什麼系統,開發團隊都袛會有一種方式來工作。反正不管怎麼樣,系統最終也一定是能開發出來的。那麼選擇開發生命週期又跟我何干?本篇將會介紹專案經理應該如何為不同特性的專案選擇最合適的管理策略,即生命週期。
Thumbnail
我們可能會有一種迷思,不管開發什麼系統,開發團隊都袛會有一種方式來工作。反正不管怎麼樣,系統最終也一定是能開發出來的。那麼選擇開發生命週期又跟我何干?本篇將會介紹專案經理應該如何為不同特性的專案選擇最合適的管理策略,即生命週期。
Thumbnail
1. 時間管理 “提供8小時工作日的詳細時間表,優化能量水準和任務多樣性,以確保最大的生產力。”  2. 任務優先順序  “列出確定任務優先順序時要考慮的關鍵因素,並創建一個決策矩陣,根據緊急性和重要性對任務進行排名。”
Thumbnail
1. 時間管理 “提供8小時工作日的詳細時間表,優化能量水準和任務多樣性,以確保最大的生產力。”  2. 任務優先順序  “列出確定任務優先順序時要考慮的關鍵因素,並創建一個決策矩陣,根據緊急性和重要性對任務進行排名。”
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News