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

文章目录

Kubernetes(k8s)工作负载

一、Workloads

二、Pod

三、Deployment

四、RC、RS、DaemonSet、StatefulSet

五、Job、CronJob

1、Job

2、CronJob

六、GC


Kubernetes(k8s)工作负载

一、Workloads

什么是工作负载(Workloads)

  • 工作负载是运行在 Kubernetes 上的一个应用程序。

  • 一个应用很复杂,可能由单个组件或者多个组件共同完成。无论怎样我们可以用一组Pod来表示一个应用,也就是一个工作负载

  • Pod又是一组容器(Containers)

  • 所以关系又像是这样

    • 工作负载(Workloads)控制一组Pod

    • Pod控制一组容器(Containers)

      • 比如Deploy(工作负载) 3个副本的nginx(3个Pod),每个nginx里面是真正的nginx容器(container)

二、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%以上大数据知识点,真正体系化!**

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

需要这份系统化资料的朋友,可以戳这里获取

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿里云数字新基建系列中的云原生操作系统Kubernetes(简称K8s)是一种开源的容器编排平台,用于管理、调度和自动化容器化应用程序的部署和扩展。Kubernetes可以实现应用程序在多个主机上的容器化部署,并提供故障恢复、自动伸缩、资源管理、负载均衡等功能,可以提高应用程序的可靠性、弹性和可扩展性。 Kubernetes是以容器为基础的技术,它可以帮助开发人员和运维人员快速构建、交付和管理容器化的应用程序。通过Kubernetes,可以将应用程序和基础设施解耦,使得应用程序能够更灵活、更高效地运行。 阿里云为了方便用户学习和使用Kubernetes,提供了相应的PDF文件供用户下载。用户可以通过阿里云官方网站或者其他渠道找到相关的Kubernetes PDF下载链接。这份PDF文件包含了Kubernetes的介绍、架构、使用指南、最佳实践等内容,具有很高的实用价值。 通过下载和学习这份PDF文件,用户可以快速了解Kubernetes的基本概念和原理,并学会如何在阿里云上使用Kubernetes进行容器化应用的部署和管理。这对于那些希望在云原生环境中构建和运行应用程序的开发人员和运维人员来说,是非常有帮助的。 总之,阿里云数字新基建系列中提供的云原生操作系统Kubernetes PDF下载是一个非常有价值的学习资源,通过学习和使用Kubernetes,用户可以更好地构建和管理容器化的应用程序。希望这份简短的回答对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值