国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

深入K8S Job(一):介紹

ysl_unh / 2022人閱讀

摘要:用于批量處理短暫的一次性任務,并保證指定數量的成功結束。一旦有一個成功結束,其他都會準備退出。默認值指定可運行的時間期限,超過時間還未結束,系統將會嘗試進行終止。已知問題設置為時,會與沖突,可以暫時將設置為進行規避。

介紹

Kubernetes有兩個概念跟job有關:

Job: 負責批量處理短暫的一次性任務,僅執行一次,并保證處理的一個或者多個Pod成功結束。

CronJob: 負責定時任務,在指定的時間周期運行指定的任務。

Job

Job用于批量處理短暫的一次性任務,并保證指定數量的Pod成功結束。
K8S支持以下幾種方式:

非并行Job:

通常只運行一個Pod,Pod成功結束Job就退出。

固定完成次數的并行Job:

并發運行指定數量的Pod,直到指定數量的Pod成功,Job結束。

帶有工作隊列的并行Job:

用戶可以指定并行的Pod數量,當任何Pod成功結束后,不會再創建新的Pod

一旦有一個Pod成功結束,并且所有的Pods都結束了,該Job就成功結束。

一旦有一個Pod成功結束,其他Pods都會準備退出。

Job Spec

完整Job字段可以參考Job。Job有幾個主要參數配合用于指定完成次數,并發運行,錯誤重試等操作:

.spec.completions: 指定job需要成功運行Pods的次數。默認值: 1

.spec.parallelism: 指定job在任一時刻應該并發運行Pods的數量。默認值: 1

.spec.activeDeadlineSeconds: 指定job可運行的時間期限,超過時間還未結束,系統將會嘗試進行終止。

.spec.backoffLimit: 指定job失敗后進行重試的次數。默認是6次,每次失敗后重試會有延遲時間,該時間是指數級增長,最長時間是6min。

已知問題Issue #54870, .spec.template.spec.restartPolicy設置為”Onfailure”時,會與.spec.backoffLimit沖突,可以暫時將restartPolicy設置為”Never”進行規避。

注1: .spec.activeDeadlineSeconds要比.spec.backoffLimit優先級高,如果時間到了,但是backoffLimit還未到,該Job也會被強制停止。

Job模式

Job有幾種典型的模式應用于不同的業務場景:

基于Job模版進行擴展:

需要先編寫一個通用的Job模版,根據不同的參數生成多個Job json/yml文件用于Job的創建,可以使用相同的標簽進行Job管理。

按每個工作項目排列的隊列:

需要用戶提前準備好一個消息隊列服務,比如rabbitMQ,該服務是一個公共組件,每個工作項目可以往里塞任務消息。

用戶可以創建并行Job,需要能適用于該消息隊列,然后從該消息隊列中消費任務,并進行處理直到消息被處理完。

該模式下,用戶需要根據項目數量填寫spec.completions, 并行數量.spec.parallelism可以根據實際情況填寫。該模式下就是以所有的任務都成功完成了,job才會成功結束。

可變任務數量的隊列:

需要用戶提前準備好一個存儲服務來保存工作隊列,比如Redis。每個項目可以往該存儲服務填充消息。

用戶可以啟動適用于該工作隊列的多個并行Job,進行消息處理。與前一個Rabbit消息隊列的差異在于,每個Job任務是可以知道工作隊列已經空了,這時候便可以成功退出。

該模式下,spec.completions需要置1, 并行數量.spec.parallelism可以根據實際情況填寫。只要其中有一個任務成功完成,該Job就會成功結束。

普通的靜態任務

CronJob

cronJob是基于時間進行任務的定時管理:

在特定的時間點運行任務

反復在指定的時間點運行任務:比如定時進行數據庫備份,定時發送電子郵件等等。

CronJob Spec

完整的spec字段,可以參考CronJob,介紹幾個主要的字段:

.spec.schedule: 指定任務運行周期,具體格式參考Cron - Wikipedia

.spec.startingDeadlineSeconds: 指定任務運行的截止時間

.spec.concurrencyPolicy: 指定任務的并發策略,參數支持Allow、Forbid和Replace。

.spec.jobTemplate: 指定需要運行的任務,格式同Job。所以其實cronJob是基于Job進行實現。

參考資料

Jobs - Run to Completion | Kubernetes

Parallel Processing using Expansions | Kubernetes

Coarse Parallel Processing Using a Work Queue | Kubernetes

Fine Parallel Processing Using a Work Queue | Kubernetes

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32723.html

相關文章

  • 深入K8S Job(二):job controller源碼分析

    摘要:用于獲取元數據及根據的來匹配該會使用到的接口如下用于根據反推根據獲取元數據提供了接口用于獲取指定下管理的所有通過的數據變更,比如,來操作該。 k8s version: v1.11.0author: lbl167612@alibaba-inc.com 源碼流程圖 showImg(https://segmentfault.com/img/remote/1460000016496285?w...

    EddieChan 評論0 收藏0
  • 深入K8S Job(三):cronJob controller源碼分析

    摘要:如果沒有指定,則沒有期限。取消當前正在運行的,然后新建來替換。和這兩個字段也是可選的。設置限制值為,相關類型的完成后將不會被保留。列出所有的列出所有的遍歷所有的根據字段確定該是否由所創建。 k8s version: v1.11.0author: lbl167612@alibaba-inc.com 源碼流程圖 showImg(https://segmentfault.com/img/r...

    Enlightenment 評論0 收藏0
  • Kubernetes 核心概念

    摘要:核心概念是最小的調度單元,可以由一個或者多個容器組成。該模式會跟云服務商有關,比如可以通過等創建一個外部的負載均衡器,將請求轉發到對應的服務組。而可以提供外部服務可訪問的負載均衡器等。 概述 Kubernetes 有各類資源對象來描述整個集群的運行狀態。這些對象都需要通過調用 kubernetes api 來進行創建、修改、刪除,可以通過 kubectl 命令工具,也可以直接調用 k8...

    Cobub 評論0 收藏0
  • 容器監控實踐—kube-state-metrics

    摘要:功能提供的指標,按照階段分為三種類別實驗性質的中階段的或者的字段。穩定版本的中不向后兼容的主要版本的更新被廢棄的已經不在維護的。通過比較來保證的順序并不保證包含所有資源本文為容器監控實踐系列文章,完整內容見 概述 已經有了cadvisor、heapster、metric-server,幾乎容器運行的所有指標都能拿到,但是下面這種情況卻無能為力: 我調度了多少個replicas?現在可...

    kevin 評論0 收藏0

發表評論

0條評論

ysl_unh

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<