容器按照持續運行的時間可分為兩類:服務類容器和工作類容器。
服務類容器通常持續提供服務,需要一直運行,比如 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 失敗了會怎么樣呢?我們下一節討論。
