用 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
用 k8s 運行一次性任務 - 每天5分鐘玩轉 Docker 容器技術(132)