您的位置:首页 > 运维架构 > Docker

用 k8s 运行一次性任务 - 每天5分钟玩转 Docker 容器技术(132)

2018-02-21 05:50 866 查看
容器按照持续运行的时间可分为两类:服务类容器和工作类容器。

服务类容器通常持续提供服务,需要一直运行,比如 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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐