在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何創建Kubernetes jobs和cronjobs?

馬哥Linux運維 ? 來源:PHP開源社區 ? 作者:PHP開源社區 ? 2021-06-15 14:04 ? 次閱讀

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

本文將介紹如何創建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腳本。

apiVersion:batch/v1

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

kubectlapply-fjob.yam

Step3:使用kubectl檢查job的狀態

kubectlgetjobs

Step4:使用kubectl獲取pod列表

kubectlgetpo

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

kubectllogskubernetes-job-example-bc7s9-f

你應該看到如下輸出:

并行運行多Job pods

當一個job被部署后,你可以讓它在多個Pod上并行運行。例如,在一個job中如果你想要運行6個 pods,同時并行運行2個pods,你需要添加以下2個參數到你的job manifets中:

completions:6

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

apiVersion:batch/v1為Kubernetes Job生成隨機名稱

你不能從一個job manifest文件中創建多個job,因為Kubernetes會報錯,說存在一個同名的job。為了規避這個問題,你可以在元數據中添加 generateName 名稱參數。

例如:

apiVersion:batch/v1

在上方示例中,每次你運行該manifest,job將以kube-job-作為前綴,后面跟著一個隨機字符串來創建。

如何創建Kubernetes CronJob

如果你想按照特定的時間表運行批處理job,例如,每2個小時運行一次。你可以用cron表達式創建一個Kubernetes cronjob。Job會按照你在job中提到的時間表自動啟動。

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

schedule:"0,15,30,45****"

下圖顯示了Kubernetes cronjob schedule語法。

pYYBAGDIRC-AYzB5AAB8dMpIrKo604.jpg

來源:kubernetes.io

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

apiVersion:batch/v1beta1

讓我們使用kubectl部署cronjob。

kubectlcreate-fcron-job.yaml

列出cronjobs:

kubectlgetcronjobs

你可以列出cronjob pod并從處于運行狀態或完成狀態的pods中獲取日志來檢查Cronjob日志。

手動運行Kubernetes CronJob

在某些情況下,你可能希望以臨時的方式執行cronjob。你可以通過從現有的cronjob創建一個job來實現。

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

kubectlcreatejob--from=cronjob/kubernetes-cron-jobmanual-cron-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,輕松搞定批處理任務!

圖片來源:kubernetes.io

文章來源:PHP開源社區

責任編輯:lq6

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • kubernetes
    +關注

    關注

    0

    文章

    236

    瀏覽量

    8905

原文標題:帶你5分鐘快速了解 K8S Job

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在基于Arm Neoverse平臺的CPU上構建分布式Kubernetes集群

    在本文中,我們將以 X(原 Twitter)為例,演示如何在基于 Arm Neoverse 平臺的 CPU 上構建分布式 Kubernetes 集群,以根據推文實時監控情緒變化。如此一來,你可以充分利用 Arm Neoverse 平臺的計算基礎,獲得更好的性能、效率和出色的靈活性。
    的頭像 發表于 03-25 15:58 ?216次閱讀
    如何在基于Arm Neoverse平臺的CPU上構建分布式<b class='flag-5'>Kubernetes</b>集群

    Kubernetes負載均衡器MetalLB介紹

    Kubernetes中一個應用服務會有一個或多個實例,每個實例(Pod)的IP地址由網絡插件動態隨機分配(Pod重啟后IP地址會改變)。為屏蔽這些后端實例的動態變化和對多實例的負載均衡,引入了 Service這個資源對象。
    的頭像 發表于 03-18 16:24 ?236次閱讀
    <b class='flag-5'>Kubernetes</b>負載均衡器MetalLB介紹

    Kubernetes中部署MySQL集群

    一般情況下 Kubernetes 可以通過 ReplicaSet 以一個 Pod 模板創建多個 pod 副本,但是它們都是無狀態的,任何時候它們都可以被一個全新的 pod 替換。
    的頭像 發表于 03-18 16:22 ?184次閱讀
    <b class='flag-5'>Kubernetes</b>中部署MySQL集群

    Kubernetes包管理工具Helm的安裝和使用

    Helm 可以幫助我們管理 Kubernetes 應用程序 - Helm Charts 可以定義、安裝和升級復雜的 Kubernetes 應用程序,Charts 包很容易創建、版本管理、分享和分布。
    的頭像 發表于 03-13 16:06 ?327次閱讀

    Kubernetes Pod常用管理命令詳解

    Kubernetes Pod常用管理命令詳解
    的頭像 發表于 02-17 14:06 ?324次閱讀
    <b class='flag-5'>Kubernetes</b> Pod常用管理命令詳解

    Kubernetes:構建高效的容器化應用平臺

    Kubernetes 作為容器編排的事實標準,在容器化應用部署中發揮著關鍵作用。 搭建 Kubernetes 集群是應用的基礎。可以使用kubeadm工具快速搭建。在主節點執行kubeadm
    的頭像 發表于 01-23 15:22 ?239次閱讀

    使用 Flexus 云服務器 X 實例部署 Kubernetes 圖形化管理平臺

    Kubernetes 作為當今最流行的容器編排平臺,隨著云計算、微服務架構和 DevOps 文化的普及,Kubernetes 在自動化部署、擴展和管理容器化應用程序方面扮演著越來越重要的角色。未來
    的頭像 發表于 01-21 16:14 ?241次閱讀
    使用 Flexus 云服務器 X 實例部署 <b class='flag-5'>Kubernetes</b> 圖形化管理平臺

    Kubernetes的CNI網絡插件之flannel

    Kubernetes設計了網絡模型,但卻將它的實現講給了網絡插件,CNI網絡插件最重要的功能就是實現Pod資源能夠跨主機通信。
    的頭像 發表于 01-02 09:43 ?634次閱讀

    艾體寶與Kubernetes原生數據平臺AppsCode達成合作

    虹科姐妹公司艾體寶宣布與Kubernetes 原生數據平臺 AppsCode達成正式合作,致力于將其核心產品KubeDB引入中國市場,為企業提供專業、高效的云原生數據庫管理解決方案。
    的頭像 發表于 12-16 15:07 ?504次閱讀

    Kubernetes集群搭建容器云需要幾臺服務器?

    Kubernetes集群搭建容器云需要幾臺服務器?至少需要4臺服務器。搭建容器云所需的服務器數量以及具體的搭建步驟,會根據所選用的技術棧、業務規模、架構設計以及安全需求等因素而有所不同。以下是一個基于Kubernetes集群的容器云搭建的概述:
    的頭像 發表于 10-21 10:06 ?352次閱讀

    基于DPU與SmartNIC的K8s Service解決方案

    1.? 方案背景 1.1. Kubernetes Service介紹 Kubernetes Service是Kubernetes中的一個核心概念,它定義了一種抽象,用于表示一組提供相同功能的Pods
    的頭像 發表于 09-02 17:01 ?1198次閱讀
    基于DPU與SmartNIC的K8s Service解決方案

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團隊(被 VMWare 收購)開源的 Kubernetes 集群備份、遷移工具。
    的頭像 發表于 08-05 15:43 ?502次閱讀
    使用Velero備份<b class='flag-5'>Kubernetes</b>集群

    如何使用Kubeadm命令在PetaExpress Ubuntu系統上安裝Kubernetes集群

    Kubernetes,通常縮寫為K8s,是一個開源的容器編排平臺,旨在自動化容器化應用的部署、擴展和管理。有了Kubernetes,您可以輕松地部署、更新和擴展應用,而無需擔心底層基礎設施。
    的頭像 發表于 07-15 13:31 ?1008次閱讀
    如何使用Kubeadm命令在PetaExpress Ubuntu系統上安裝<b class='flag-5'>Kubernetes</b>集群

     K8S學習教程一:使用PetaExpress云服務器安裝Minikube 集群

    使得開發人員能夠在本地機器上輕松創建一個單節點的 Kubernetes 集群,從而方便開發、測試和學習 Kubernetes。 我們看下如何使用PetaExpress云服務器安裝Minikube 集群
    的頭像 發表于 07-01 15:41 ?524次閱讀
     K8S學習教程一:使用PetaExpress云服務器安裝Minikube 集群

    鴻蒙開發:創建PageAbility

    通過DevEco Studio開發平臺創建PageAbility時,DevEco Studio會在app.js/app.ets中默認生成onCreate()和onDestroy()方法,其他方法需要開發者自行實現。
    的頭像 發表于 06-18 09:36 ?382次閱讀
    鴻蒙開發:<b class='flag-5'>創建</b>PageAbility
    主站蜘蛛池模板: 天天操人人 | 天天射综合网站 | 午夜寂寞影院视频观看 | 调教r18车肉高h男男 | 色播影院性播影院私人影院 | 久久精品久噜噜噜久久 | 亚洲人成影网站~色 | 天天视频国产精品 | 欧美xxx另类 | 午夜免费福利片观看 | 毛片新网址 | 久久精品国产精品亚洲婷婷 | 五月婷婷激情在线 | 777色狠狠一区二区三区香蕉 | 色综合久久丁香婷婷 | 久久久午夜精品理论片 | 色妞妞网 | 国产亚洲一区二区三区在线 | 亚洲第一在线播放 | 一级毛片在线播放 | 男人的天堂久久精品激情 | 三级亚洲 | 综合色99 | 一本高清在线 | 国产日韩三级 | 欧美一级欧美三级在线观看 | 亚洲色四在线视频观看 | 黄色在线视频免费看 | 久久人人精品 | 国产精品一久久香蕉产线看 | 黑人破乌克兰美女处 | 俄罗斯欧美色黄激情 | 欧美一区二区高清 | 边做饭边被躁欧美三级小说 | 色综网 | 亚洲一区二区免费看 | 2018国产大陆天天弄 | 欧美午夜色大片在线观看免费 | 性做久久久久久久免费观看 | 日韩三级小视频 | 手机看片精品国产福利盒子 |