久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

5步創建K8S Job,搞定批處理

Kubernetes jobs主要是針對短時和批量的工作負載。它是為了結束而運行的,而不是像deployment、replicasets、replication controllers和DaemonSets等其他對象那樣持續運行。

5步創建K8S Job,搞定批處理
本文將介紹如何創建Kubernetes jobs和cronjobs,以及一些小技巧。

Kubernetes Jobs會一直運行到Job中指定的任務完成。也就是說,如果pods給出退出代碼0,那么Job就會退出。而在正常的Kubernetes中,無論退出代碼是什么,deployment對象在終止或出現錯誤時都會創建新的pod,以保持deployment的理想狀態。

在job運行過程中,如果托管pod的節點發生故障,Job pod將被自動重新安排到另一個節點。

???????Kubernetes Jobs用例
對于Kubernetes Jobs最好的用例實踐是:
  1. 批處理任務:比如說你想每天運行一次批處理任務,或者在指定日程中運行。它可能是像從存儲庫或數據庫中讀取文件那樣,將它們分配給一個服務來處理文件。
  2. 運維/ad-hoc任務:比如你想要運行一個腳本/代碼,該腳本/代碼會運行一個數據庫清理活動,甚至備份一個Kubernetes集群。

     

    如何創建Kubernetes Job

    在本例中,我們將使用Ubuntu 容器來運行一個帶有for循環的shell腳本,并根據你傳遞給容器的參數來呼應消息。這個參數是一個數字,決定shell腳本循環應該運行多少次。

    例如,如果你傳遞了參數100,那么shell腳本將呼應消息100次然后容器將會退出。

    你可以訪問以下鏈接查看Dockerfile和shell腳本:

    https://github.com/devopscube/Kubernetes-jobs-example/tree/master/Docker

    我們先從一個簡單設置的job開始。

    Step1使用自定義的Docker鏡像創建一個job.yaml文件,命令參數為100。100將會作為參數傳遞給docker ENTRYPOINT腳本。

    5步創建K8S Job,搞定批處理

    Step2使用kubectl創建一個job.yaml文件的job

    5步創建K8S Job,搞定批處理

    Step3使用kubectl檢查job的狀態

    5步創建K8S Job,搞定批處理

    Step4使用kubectl獲取pod列表

    5步創建K8S Job,搞定批處理

    Step5使用kubectl獲取job pod 日志。使用你在輸出中看到的Pod名稱替換原本的Pod名稱。

    5步創建K8S Job,搞定批處理

    你應該看到如下輸出:

    5步創建K8S Job,搞定批處理
    并行運行多Job pods
    當一個job被部署后,你可以讓它在多個Pod上并行運行。例如,在一個job中如果你想要運行6個 pods,同時并行運行2個pods,你需要添加以下2個參數到你的job manifets中:5步創建K8S Job,搞定批處理

    以下是帶有那些參數的manifest:

    5步創建K8S Job,搞定批處理
    為Kubernetes Job生成隨機名稱
    你不能從一個job manifest文件中創建多個job,因為Kubernetes會報錯,說存在一個同名的job。為了規避這個問題,你可以在元數據中添加?generateName?名稱參數。

    例如:

    5步創建K8S Job,搞定批處理
    在上方示例中,每次你運行該manifest,job將以kube-job-作為前綴,后面跟著一個隨機字符串來創建。
    如何創建Kubernetes CronJob
    如果你想按照特定的時間表運行批處理job,例如,每2個小時運行一次。你可以用cron表達式創建一個Kubernetes cronjob。Job會按照你在job中提到的時間表自動啟動。

    下面我們將介紹如何指定一個cron計劃,你可以使用crontab生成器(https://crontab-generator.org/)來生成自己的時間計劃。

    5步創建K8S Job,搞定批處理

    下圖顯示了Kubernetes cronjob schedule語法。

    5步創建K8S Job,搞定批處理

    如果我們以cronjob的形式每15分鐘運行一次我們之前的job,manifest應該如下所示。創建一個名為cron-job.yaml的文件,并復制以下manifest:

    5步創建K8S Job,搞定批處理

    讓我們使用kubectl部署cronjob。

    5步創建K8S Job,搞定批處理

    列出cronjobs:

    5步創建K8S Job,搞定批處理
    你可以列出cronjob pod并從處于運行狀態或完成狀態的pods中獲取日志來檢查Cronjob日志。
    手動運行Kubernetes CronJob
    在某些情況下,你可能希望以臨時的方式執行cronjob。你可以通過從現有的cronjob創建一個job來實現。

    例如,如果你想手動觸發一個cronjob,我們應該這樣做:

    5步創建K8S Job,搞定批處理
    --from=cronjob/kubernetes-cron-job將復制cronjob模板并創建一個名為manual-cron-job的job。
    Kubernetes Job的關鍵參數
    根據你的需求,你還可以使用kubernetes jobs/cronjobs的幾個關鍵參數:
    1. failedJobHistoryLimit & successfulJobsHistoryLimit:根據你提供的保留數量刪除失敗和成功的job歷史記錄。當你嘗試列出job時,這對于減少所有失敗的條目非常有用。例如:
    2. backoffLimit:如果你的Pod失敗,重試的總次數。
    3. activeDeadlineSeconds:如果你想對cronjob的運行時間進行硬性限制,可以使用此參數。例如,如果你想只運行1分鐘的cronjob,你可以將其設置為60。
    通過本文我們了解了創建Job以及Cron Job的步驟并且一些詳細的配置過程和關鍵參數,希望藉由本文可以幫助你開始上手了解K8S Job和Cron Job,輕松搞定批處理任務!
    原文鏈接:

    https://devopscube.com/create-kubernetes-jobs-cron-jobs/

    文章轉載:RancherLabs

    (版權歸原作者所有,侵刪)

    5步創建K8S Job,搞定批處理

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 靖州| 疏附县| 宝坻区| 明水县| 阿克苏市| 长汀县| 大城县| 南陵县| 成安县| 郎溪县| 若尔盖县| 新余市| 芦溪县| 通河县| 沭阳县| 灌云县| 襄垣县| 海淀区| 陆河县| 万安县| 集贤县| 康马县| 九台市| 洛隆县| 临西县| 宿州市| 黄陵县| 长兴县| 英山县| 九龙县| 马关县| 久治县| 琼结县| 平南县| 禹州市| 二连浩特市| 镇远县| 新野县| 颍上县| 富蕴县| 乐陵市|