【已解決】k8s Cronjob.spec.failedJobsHistoryLimit不生效問題

標簽

kubernetes喇颁、Cronjob漓帅、pod

背景介紹

如下面的yaml所示老速,明明已經(jīng)設置了.spec.failedJobsHistoryLimit為1诵棵,但仍然產(chǎn)生了7個狀態(tài)為Error的Pod:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: mycronjob
  namespace: prod
  labels:
    task: processor
spec:
  failedJobsHistoryLimit: 1
  successfulJobsHistoryLimit: 3
……
kubectl get pod -n prod -l task=processor
NAME                      READY   STATUS   RESTARTS   AGE
mycronjob-16043364027mpp   0/1     Error    0          9h
mycronjob-16043364098q8q   0/1     Error    0          9h
mycronjob-160433640hc2ch   0/1     Error    0          9h
mycronjob-160433640nrdqb   0/1     Error    0          9h
mycronjob-160433640r49cq   0/1     Error    0          8h
mycronjob-160433640tnfvw   0/1     Error    0          9h
mycronjob-160433640vhdsc   0/1     Error    0          9h

那么原环,問題來了痰娱,為什么CronJob.spec.successfulJobsHistoryLimit可以生效,而CronJob.spec.failedJobsHistoryLimit沒有生效呢?

分析

理解這個問題前,我們首先要搞清楚苗踪,CronJob是干什么的颠区。
官方介紹

A CronJob creates Jobs on a repeating schedule.

One CronJob object is like one line of a crontab (cron table) file. It runs a job periodically on a given schedule, written in Cron format.

從定義中,我們不難看出通铲,CronJob是用來管理Job的毕莱,而Job才是生成Pod的源頭,因此想要探尋CronJob.spec.failedJobsHistoryLimit失效的原因颅夺,我們得去看CronJob定期創(chuàng)建的Job的配置:
執(zhí)行命令:

kubectl get job -n prod -l task=processor -o yaml

得到:

apiVersion: v1
items:
- apiVersion: batch/v1
  kind: Job
  metadata:
    labels:
      task: processor
    name: processor-1604336400
    namespace: prod
    ownerReferences:
    - apiVersion: batch/v1beta1
      blockOwnerDeletion: true
      controller: true
      kind: CronJob
      name: processor
  spec:
    backoffLimit: 6
    completions: 1
    parallelism: 1
  status:
    conditions:
    - message: Job has reached the specified backoff limit
      reason: BackoffLimitExceeded
      type: Failed

注意觀察spec.backoffLimit這個配置朋截,官方解釋是:

There are situations where you want to fail a Job after some amount of retries due to a logical error in configuration etc. To do so, set .spec.backoffLimit to specify the number of retries before considering a Job as failed. The back-off limit is set by default to 6. Failed Pods associated with the Job are recreated by the Job controller with an exponential back-off delay (10s, 20s, 40s ...) capped at six minutes. The back-off count is reset when a Job's Pod is deleted or successful without any other Pods for the Job failing around that time.

翻譯過來就是說,Job處理過程中吧黄,如果它創(chuàng)建的Pod失敗了部服,那么默認情況下,Job會重復創(chuàng)建6次新的Pod拗慨,如果我們不想它創(chuàng)建這么多次廓八,可以更改.spec.backoffLimit這個配置。
講到這里赵抢,相信大家都知道問題出在哪兒了剧蹂。

總結(jié)

CronJob創(chuàng)建了Job,并且根據(jù)我們的配置烦却,限制了Job的失敗以及成功歷史輸分別為3和1宠叼,但是Job什么時候算失敗確是由Job.spec.backoffLimit規(guī)定的,因此我們通過CronJob.spec.failedJobsHistoryLimit限制的只能是Job的個數(shù)其爵,此個數(shù)可以通過命令kubectl get job -n prod -l task=processor查看冒冬,想要限制最終的失敗Pod數(shù),得控制Job.spec.backoffLimit這個配置才可以摩渺。

參考

Running Automated Tasks with a CronJob
Jobs
Pod Lifecycle

思考

如果設置CronJob.spec.failedJobsHistoryLimit為2窄驹,Job.spec.backoffLimit為5,那么最多會保留多少個狀態(tài)為Error的Pod ?

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末证逻,一起剝皮案震驚了整個濱河市乐埠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌囚企,老刑警劉巖丈咐,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異龙宏,居然都是意外死亡棵逊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門银酗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辆影,“玉大人徒像,你說我怎么就攤上這事⊥芗ィ” “怎么了锯蛀?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長次慢。 經(jīng)常有香客問我旁涤,道長,這世上最難降的妖魔是什么迫像? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任劈愚,我火速辦了婚禮,結(jié)果婚禮上闻妓,老公的妹妹穿的比我還像新娘菌羽。我一直安慰自己,他們只是感情好由缆,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布算凿。 她就那樣靜靜地躺著,像睡著了一般犁功。 火紅的嫁衣襯著肌膚如雪氓轰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天浸卦,我揣著相機與錄音署鸡,去河邊找鬼。 笑死限嫌,一個胖子當著我的面吹牛靴庆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播怒医,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼炉抒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了稚叹?” 一聲冷哼從身側(cè)響起焰薄,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扒袖,沒想到半個月后塞茅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡季率,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年野瘦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡鞭光,死狀恐怖吏廉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情惰许,我是刑警寧澤席覆,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站啡省,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏髓霞。R本人自食惡果不足惜卦睹,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望方库。 院中可真熱鬧结序,春花似錦、人聲如沸纵潦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邀层。三九已至返敬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寥院,已是汗流浹背劲赠。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秸谢,地道東北人凛澎。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像估蹄,于是被迫代替她去往敵國和親塑煎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359