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


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

服務類容器通常持續提供服務,需要一直運行,比如 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 的狀態:

DESIRED 和 SUCCESSFUL 都為 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM