当前位置: 代码网 > 科技>人工智能>数据分析 > 云原生(十八) Kubernetes篇之Kubernetes(k8s)工作负载_kubernetes工作负载

云原生(十八) Kubernetes篇之Kubernetes(k8s)工作负载_kubernetes工作负载

2024年08月06日 数据分析 我要评论
CronJob 按照预定的时间计划(schedule)创建 Job(注意:启动的是Job不是Deploy,rs)。无论怎样我们可以用一组Pod来表示一个应用,也就是一个工作负载。基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!工作负载是运行在 Kubernetes 上的一个应用程序。格式定义的时间计划,周期性地创建 Job 对象。工作负载(Workloads)控制一组Pod。Pod又是一组容器(Containers)

文章目录

kubernetes(k8s)工作负载

一、workloads

二、pod

三、deployment

四、rc、rs、daemonset、statefulset

五、job、cronjob

1、job

2、cronjob

六、gc


kubernetes(k8s)工作负载

一、workloads

二、pod

关于pod深入介绍已经在之前文章讲述过,有不了解的同学可以再看看以下文章

【云原生 | kubernetes篇】深入了解pod(六)_lansonli的博客-csdn博客

三、deployment

关于deployment深入介绍已经在上一篇文章讲述过,有不了解的同学可以看看以下文章

【云原生 | kubernetes篇】深入了解deployment_lansonli的博客-csdn博客

四、rc、rs、daemonset、statefulset

关于这块内容****已经在之前文章讲述过,有不了解的同学可以再看看以下文章

【云原生 | kubernetes篇】深入rc、rs、daemonset、statefulset(七)_lansonli的博客-csdn博客

五、job、cronjob

1、job

kubernetes中的 job 对象将创建一个或多个 pod,并确保指定数量的 pod 可以成功执行到进程正常结束:

  • 当 job 创建的 pod 执行成功并正常结束时,job 将记录成功结束的 pod 数量
  • 当成功结束的 pod 达到指定的数量时,job 将完成执行
  • 删除 job 对象时,将清理掉由 job 创建的 pod

apiversion: batch/v1
kind: job
metadata:
  name: pi
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-mbignum=bpi", "-wle", "print bpi(2000)"]
      restartpolicy: never #job情况下,不支持always
  backofflimit: 4 #任务4次都没成,认为失败
  activedeadlineseconds: 10
#默认这个任务需要成功执行一次。
#查看job情况
kubectl get job

#修改下面参数设置再试试
#千万不要用阻塞容器。nginx。job由于pod一直running状态。下一个永远得不到执行,而且超时了,当前running的pod还会删掉
kubectl api-resources
#参数说明
kubectl explain job.spec
activedeadlineseconds:10 总共维持10s
#该字段限定了 job 对象在集群中的存活时长,一旦达到 .spec.activedeadlineseconds 指定的时长,该 job 创建的所有的 pod 都将被终止。但是job不会删除,job需要手动删除,或者使用ttl进行清理
backofflimit:
#设定 job 最大的重试次数。该字段的默认值为 6;一旦重试次数达到了 backofflimit 中的值,job 将被标记为失败,且尤其创建的所有 pod 将被终止;
completions: #job结束需要成功运行的pods。默认为1
manualselector:
parallelism: #并行运行的pod个数,默认为1
ttlsecondsafterfinished:
ttlsecondsafterfinished: 0 #在job执行完时马上删除
ttlsecondsafterfinished: 100 #在job执行完后,等待100s再删除
#除了 cronjob 之外,ttl 机制是另外一种自动清理已结束job(completed 或 finished)的方式:
#ttl 机制由 ttl 控制器 提供,ttlsecondsafterfinished 字段可激活该特性
#当 ttl 控制器清理 job 时,ttl 控制器将删除 job 对象,以及由该 job 创建的所有 pod 对象。	
#job超时以后 已经完成的不删,正在运行的pod就删除
#单个pod时,pod成功运行,job就结束了
#如果job中定义了多个容器,则job的状态将根据所有容器的执行状态来变化。
#job任务不建议去运行nginx,tomcat,mysql等阻塞式的,否则这些任务永远完不了。
#如果job定义的容器中存在http server、mysql等长期的容器和一些批处理容器,则job状态不会发生变化(因为长期运行的容器不会主动结束)。此时可以通过pod的.status.containerstatuses获取指定容器的运行状态。

manualselector:

  • job同样可以指定selector来关联pod。需要注意的是job目前可以使用两个api组来操作,batch/v1和extensions/v1beta1。当用户需要自定义selector时,使用两种api组时定义的参数有所差异。
  • 使用batch/v1时,用户需要将jod的spec.manualselector设置为true,才可以定制selector。默认为false。
  • 使用extensions/v1beta1时,用户不需要额外的操作。因为extensions/v1beta1的spec.autoselector默认为false,该项与batch/v1的spec.manualselector含义正好相反。换句话说,使用extensions/v1beta1时,用户不想定制selector时,需要手动将spec.autoselector设置为true。
2、cronjob

cronjob 按照预定的时间计划(schedule)创建 job(注意:启动的是job不是deploy,rs)。一个 cronjob 对象类似于 crontab (cron table) 文件中的一行记录。该对象根据 cron 格式定义的时间计划,周期性地创建 job 对象。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com