Kubernetes(5)job控制器

Kubernetes(5)job控制器

容器按照持续运行的时间可分为两类:服务类容器和工作类容器
服务类容器通常持续提供服务,需要一直运行,比如HTTPServer、Daemon等。工作类容器则是一次性任务,比如批处理程序,完成后容器就退出
Kubernetes的Deployment、ReplicaSet和DaemonSet都用于管理服务类容器;对于工作类容器,我们使用Job

部署

# 先看一个简单的Job配置文件myjob.yml
[k8s@server1 ~]$ cat myjob.yml 
apiVersion: batch/v1 (1)
kind: Job (2)
metadata:
 name: myjob
spec:
 template:
  metadata:
    name: myjob
  spec:
   containers:
   - name: hello
     image: busybox
     command: ["echo","hello k8s job !"]
   restartPolicy: Never (3)

"""
1.batch/v1是当前Job的apiVersion
2.指明当前资源的类型为Job
3.restartPolicy指定什么情况下需要重启容器。对于Job,只能设
置为Never或者OnFailure。对于其他controller(比如Deployment),
可以设置为Always
"""

# kubectl apply -f myjob.yml启动Job
[k8s@server1 ~]$ kubectl apply -f myjob.yml 
job.batch/myjob created

# 通过kubectl get job查看Job的状态
[k8s@server1 ~]$ kubectl get job
NAME    COMPLETIONS   DURATION   AGE
myjob   1/1           12s        14s

[k8s@server1 ~]$ kubectl get pod
NAME                               READY   STATUS      RESTARTS   AGE
myjob-c87rp                        0/1     Completed   0          27s
# 通过kubectl logs可以查看Pod的标准输出
[k8s@server1 ~]$ kubectl logs myjob-c87rp
hello k8s job !

Pod失败的情况
以上是Pod成功执行的情况,如果Pod失败了会怎么样呢?
# 我们做个试验,修改myjob.yml,故意引入一个错误
[k8s@server1 ~]$ cat myjob.yml 
apiVersion: batch/v1
kind: Job
metadata:
 name: myjob
spec:
 template:
  metadata:
    name: myjob
  spec:
   containers:
   - name: hello
     image: busybox
     command: ["invalid_command","hello k8s job !"]
   restartPolicy: Never


# 先删除之前的Job
[k8s@server1 ~]$ kubectl delete -f myjob.yml 
job.batch 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值