Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Job 资源对象

Job 资源对象

作者头像
小手冰凉
发布于 2020-09-10 10:41:20
发布于 2020-09-10 10:41:20
60200
代码可运行
举报
文章被收录于专栏:小手冰凉小手冰凉
运行总次数:0
代码可运行

服务类的Pod容器:RC、RS、DS、Deployment.(Pod内运行的服务,要持续运行) 工作类的Pod容器:Job--->执行一次,或者批量执行处理程序,完成之退 出容器。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//举个栗子
kind: Job
apiVersion: batch/v1
metadata:
  name: test-job
spec: 
  template:
    metadata:
      name: test-job
    spec:
      containers:
      - name: hello
        image: busybox
        command: ["echo","hello k8s job!"]
      restartPolicy: Never

[root@docker-k8s01 ~]# kubectl apply -f test-job.yaml 
[root@docker-k8s01 ~]# kubectl logs test-job-hsl9z 
hello k8s job!

注:注意,如果容器内执行任务有误,会根据容器的重启策略操作容器, 不过这里的容器重启策略只能是: Never和 OnFailure。

提高Job的执行效率 我们可以在Job.spec字段下加上parallelism选项。表示同时运行多少个 Pod执行任务。 我们可以在Job.spec字段下加上completions选项。表示总共需要完成 Pod的数量。

将上述Job任务进行更改。提示,更改Job任务的时候,需要先将原来的Job资源对象删除。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kind: Job
apiVersion: batch/v1
metadata:
  name: test-job
spec:
  parallelism: 2
  completions: 8
  template:
    metadata:
      name: test-job
    spec:
      containers:
      - name: hello
        image: busybox
        command: ["echo","hello k8s job!"]
      restartPolicy: Never

如何定时执行Job

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kind: CronJob
apiVersion: batch/v1beta1
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"              # 添加此行,和crontab -e 里面的分时日月周一样
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            command: ["echo","hello cronjob!"]
          restartPolicy: OnFailure
#此时查看Pod的状态,会发现,每分钟都会运行一个新的Pod来执行命令规 定的任务。
#但是如果是规定具体时间,他可能并不会去执行任务!!!

添加apiVersion库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@docker-k8s01 ~]# vim /etc/kubernetes/manifests/kube-apiserver.yaml 
#在command字段下添加- --runtime-config=batch/v2alpha1=true
  - command:
    - kube-apiserver
    - --advertise-address=192.168.171.151
    - --runtime-config=batch/v2alpha1=true
    - --allow-privileged=true
#重启kubelet服务,重新识别api文件内容使之生效
[root@docker-k8s01 ~]# systemctl restart kubelet
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//查看api版本库
[root@docker-k8s01 ~]# kubectl api-versions 
.................
batch/v2alpha1

注意:此时仍然不能正常运行指定时间的cronJob,这是因为K8s官方 在cronjob这个资源对象的支持中还没有完善此功能,还待开发。 跟Job资源一样在cronjob.spec.jobTemplate.spec下同样支持并发Job参数:parallelism,也支持完成Pod的总数参数:completions

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
kubernetes常用控制器之Job和CronJob
Kubernetes的主要任务是保证Pod中的应用长久稳定的运行,但是我们有时候也需要一些只需要运行一次,执行完就退出了的"短时"任务,这时候使用Deployment等这类控制器就无法满足我们的需求,Kubernetes就诞生了Job Controller,专门用来处理这类需求。
极客运维圈
2020/03/23
7030
Kubernetes 笔记 10 Job 机器人加工厂
通常,我们在执行任务时,会启用多个服务,有些任务需要长时间运行,全天 24 小时不中断,所以一般会启用 Daemon 类的 服务;而有些任务则只需要短暂执行,任务执行完,服务就没有存在的必要了。
Linux云计算网络
2019/05/25
4690
ASP.NET Core on K8S深入学习(3-2)DaemonSet与Job
  Deployment的部署可以指定副本Pod分布在多个Node节点上,且每个Node都可以运行多个Pod副本。而DaemonSet呢,它倔强地保证在每个Node上都只运行一个Pod副本。
Edison Zhou
2019/08/18
6080
ASP.NET Core on K8S深入学习(3-2)DaemonSet与Job
k8s 关于Job与Cronjob
在Kubernetes 中通过创建工作负载资源 Job 可完成大型计算以及一些批处理任务。比如 Job 转码文件、获取部分文件和目录,机器学习中的训练任务等。这篇小作文我们一起来了解 k8s 中关于 job、cronjob 的内容。
你大哥
2021/11/02
8510
Kubernetes K8S之资源控制器Job和CronJob详解
kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制pod的具体状态和行为。
踏歌行
2020/10/15
4.6K0
关于 Kubernetes中Job&CronJob的一些笔记
Kubernetes从1.2版本开始支持批处理类型的应用,我们可以通过Kubernetes Job资源对象来定义并启动一个批处理任务。
山河已无恙
2023/03/02
5830
如何使用Kubernetes Job运行一次性任务
在 kubernetes 中,Deployment、DaemonSet会持续运行任务,这些 pod 中的进程在崩溃退出时会重新启动,永远达不到完成态。你也许会遇到这样的场景,当需要运行一个一次性的可完成的任务,其进程终止后,不应该再重新启动,那么 Job 资源类型完全符合你。Kubernetes 中通过 Job 资源提供了对此的支持,它允许你运行一种 pod,该 pod 在内部进程成功结束时,不重启容器。一旦任务完成,pod 就被认为处于完成状态。在发生节点故障时,该节点上由 Job 管理的 pod 将按照 ReplicaSet 的 pod 的方式, 重新安排到其他节点,以确保任务能够成功完成,所以 Job 通常用于执行一次性任务或批处理作业。Job 还可以控制 Pod 的数量,确保一定数量的 Pod 成功完成任务。Job 的一些常用使用场景:
用户1107783
2023/09/25
7190
如何使用Kubernetes Job运行一次性任务
Kubernetes Job 与 CronJob
如果说 Deployment、DaemonSet 等资源为 Kubernetes 承担了长时间、在线计算的能力,那么定时、短期、甚至一次性的离线计算能力,便是 Job 和 CronJob 所承担的事情。
CS实验室
2021/03/22
1.1K0
Kubernetes Job 与 CronJob
kubernetes系列教程(十三)一次性任务Job和周期任务
Windows下可以通过批处理脚本完成批处理任务,脚本运行完毕后任务即可终止,从而实现批处理任务运行工作,类似的任务如何在kubernetes中运行呢?答案是Jobs,Jobs是kubernetes中实现一次性计划任务的Pod控制器—JobController,通过控制Pod来执行任务,其特点为:
HappyLau谈云计算
2020/01/23
7.5K1
【重识云原生】第六章容器基础6.4.7节——Job
Job 负责批量处理短暂的一次性任务 (short lived one-off tasks),即仅执行一次的任务,它保证批处理任务的一个或多个 Pod 成功结束。容器中的进程在正常运行结束后不会对其进行重启,而是将Pod对象置于"Completed"(完成)状态,若容器中的进程因错误而终止,则需要按照重启策略配置确定是否重启,未运行完成的Pod对象因其所在的节点故障而意外终止后会被调度。Job控制器的Pod对象的状态转换如下图所示:
江中散人_Jun
2022/10/28
1.1K0
【重识云原生】第六章容器基础6.4.7节——Job
pod 资源对象
Deployment: 最常见的无状态应用的控制器,支持应用的扩缩容、滚动 更新等操作 。 Servcie: 为弹性变动且存在生命周期的Pod对象提供了一个固定的访问接 口,用于服务发现和服务访问。
小手冰凉
2020/09/09
6510
k8s--资源控制器
Kubernetes中内建了很多controller (控制器) ,这些相当于一个状态机,用来控制Pod的具体状态和行为
eadela
2019/12/11
8160
k8s 实践经验(八)job && CronJob
Job,主要用于负责**批量处理(一次要处理指定数量任务)短暂的一次性(每个任务仅运行一次就结束)**任务。Job特点如下:
看、未来
2022/05/09
7600
k8s 实践经验(八)job && CronJob
16 Dec 2021 cka练习(九)
俊采
2023/10/17
1360
「走进k8s」Kubernetes1.15.1的定时任务和任务管理(24)
PS:当前一个CronJob在执行期间“大约”创建一个Job,之所以说“大约”是因为在特殊的情况下可能会创建两个或没有Job被创建。Kubernetes官方正在试图使这种情况尽量少发生,但目前还不能保证完全杜绝。CronJob的时间一定要控制好,设置好成功和失败,我的实例代码没写,但是在升成中务必添加。
IT架构圈
2019/08/23
4.6K0
kubernetes核心实战(七)--- job、CronJob、Secret
CronJobs 对于创建周期性的、反复重复的任务很有用,例如执行数据备份或者发送邮件。CronJobs 也可以用来计划在指定时间来执行的独立任务,例如计划当集群看起来很空闲时 执行某个 Job。
小陈运维
2022/08/19
4380
kubernetes核心实战(七)--- job、CronJob、Secret
Kubernetes 1.19.0——cronjob
如果配置文件中的sh改成一个不存在的比如shxxx,且restartPolicy一直未Never的话那么就会一直创建不了,报ContainerCannotRun,也仍然会一直创建;如果restartPolicy改为OnFailure,那么就会一直重启,RESTARTS会一直增加
gz_naldo
2020/10/20
9020
Kubernetes 1.19.0——cronjob
【K8S专栏】Kubernetes工作负载管理
但是,单独的Pod并不能保障总是可用,比如我们创建一个nginx的Pod,因为某些原因,该Pod被意外删除,我们希望其能够自动新建一个同属性的Pod。很遗憾,单纯的Pod并不能满足需求。
没有故事的陈师傅
2022/09/15
5340
【K8S专栏】Kubernetes工作负载管理
kubernetes核心实战(七)--- job、CronJob、Secret
CronJobs 对于创建周期性的、反复重复的任务很有用,例如执行数据备份或者发送邮件。CronJobs 也可以用来计划在指定时间来执行的独立任务,例如计划当集群看起来很空闲时 执行某个 Job。
小陈运维
2021/12/02
4630
replicaSet,DaemonSet and Job
上一篇讲到的 ReplicationController 是用于复制和在异常的时候重新调度节点的 K8S 组件,后面 K8S 又引入了 ReplicaSet 资源来替代 ReplicationController
阿兵云原生
2023/09/01
1960
replicaSet,DaemonSet and Job
相关推荐
kubernetes常用控制器之Job和CronJob
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验