1. 程式人生 > >用 k8s 運行一次性任務 - 每天5分鐘玩轉 Docker 容器技術(132)

用 k8s 運行一次性任務 - 每天5分鐘玩轉 Docker 容器技術(132)

bsp lin cas tro des k8s 需要 app ply

容器按照持續運行的時間可分為兩類:服務類容器和工作類容器。

服務類容器通常持續提供服務,需要一直運行,比如 http server,daemon 等。工作類容器則是一次性任務,比如批處理程序,完成後容器就退出。

Kubernetes 的 Deployment、ReplicaSet 和 DaemonSet 都用於管理服務類容器;對於工作類容器,我們用 Job。

先看一個簡單的 Job 配置文件 myjob.yml:

技術分享圖片

batch/v1 是當前 Job 的 apiVersion

② 指明當前資源的類型為 Job

restartPolicy 指定什麽情況下需要重啟容器。對於 Job,只能設置為 Never

或者 OnFailure。對於其他 controller(比如 Deployment)可以設置為 Always

通過 kubectl apply -f myjob.yml 啟動 Job。

技術分享圖片

kubectl get job 查看 Job 的狀態:

技術分享圖片

DESIREDSUCCESSFUL 都為 1,表示按照預期啟動了一個 Pod,並且已經成功執行。kubectl get pod 查看 Pod 的狀態:

技術分享圖片

因為 Pod 執行完畢後容器已經退出,需要用 --show-all 才能查看 Completed 狀態的 Pod。

kubectl logs 可以查看 Pod 的標準輸出:

技術分享圖片

以上是 Pod 成功執行的情況,如果 Pod 失敗了會怎麽樣呢?我們下一節討論。

書籍:

1.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html


2.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html

技術分享圖片


用 k8s 運行一次性任務 - 每天5分鐘玩轉 Docker 容器技術(132)