天天看點

hualinux 進階 1.17:Job CronJob控制器及Configmap、Secret等

前面講了常用的​​ReplicaSet​​​、​​Deployments​​​、​​StatefulSets​​​幾個常用控制器,還有沒講的​​DaemonSet​​,這幾個是線上業務,

而 離線業務 的控制器​​Jobs (EN)​​​、​​CronJob​​基本上就這些了。

前面還欠下​​ ConfigMap 配置 Pod​​​的,儲存敏感資訊的​​Secret​​

沒講這些官方文檔都講很很詳細,我這裡不再詳說了

一、關于DaemonSet 

DaemonSet 的“過人之處”,其實就是依靠 Toleration 實作的。

一個 Toleration,排程器在排程這個 Pod 的時候,就會忽略目前節點上的“污點”,進而成功地将網絡插件的 Agent 元件排程到這台機器上啟動起來。

DaemonSet 相比于 Deployment,DaemonSet 隻管理 Pod 對象,然後通過 nodeAffinity 和 Toleration 這兩個排程器的小功能,保證了每個節點上有且隻有一個 Pod。

與此同時,DaemonSet 使用 ControllerRevision,來儲存和管理自己對應的“版本”。這種“面向 API 對象”的設計思路,大大簡化了控制器本身的邏輯,也正是 Kubernetes 項目“聲明式 API”的優勢所在。

二、關于job和CroJob

定義了 restartPolicy=Never,那麼離線作業失敗後 Job Controller 就會不斷地嘗試建立一個新 Pod

定義的 restartPolicy=OnFailure,那麼離線作業失敗後,Job Controller 就不會去嘗試建立新的 Pod。但是,它會不斷地嘗試重新開機 Pod 裡的容器。

ps:

這個嘗試肯定不能無限進行下去。是以,我們就在 Job 對象的 spec.backoffLimit 字段裡定義了重試次數為 4(即,backoffLimit=4),而這個字段的預設值是 6。

繼續閱讀