七、应用编排与管理:Job 和 DaemonSet
本文最后更新于 792 天前,其中的信息可能已经有所发展或是发生改变。

Job

背景问题

  • 我们如何保证 Pod 内进程正确的结束?
  • 如何保证进程运行失败后重试?
  • 如何管理多个任务,且任务之间有依赖关系?
  • 如何并行地运行任务,并管理任务的队列大小?

Job:管理任务的控制器

  • Job 可以创建指定数量的 Pod ,并监控它是否成功地运行或终止

  • 可以根据 Pod 的状态来给 Job 设置重置的方式及重试的次数

    为什么要根据 pod 的状态

  • 根据依赖关系,保证上一个任务运行完成之后再运行下一个任务

  • 控制任务的并行量

Job 语法

image-20220222170944663

  • restartPolicy:重试策略
    • Never:不重试
    • OnFailure:失败的时候重试
    • Always:成功与否都重试
  • backoffLimit:重试次数限制
  • completions:job 运行总次数
  • parallelism:并发数

查看 Job 状态

命令:kubectl get job

image-20220222172912427

  • duration:job运行时长
  • age:pod创建多久了

Cronjob 语法

image-20220222174649004

  • startingDeadlineSeconds:job 等待启动的时间限制
  • concurrencyPolicy:是否允许并行运行
  • JobsHistoryLimit:每一次 CronJob 运行完之后,都会遗留上一个 Job 的运行历史、查看时间。这个参数就是对保留的历史信息的数量限制

Job Controller

image-20220222180119952

  • check active pod:比较当前运行的 pod 和配置的并发数

DaemonSet

背景问题

  • 首先如果希望每个节点都运行同样一个 pod 怎么办?
  • 如果新节点加入集群的时候,想要立刻感知到它,然后去部署一个 pod,帮助我们初始化一些东西,这个需求如何做?
  • 如果有节点退出的时候,希望对应的 pod 会被删除掉,应该怎么操作?
  • 如果 pod 状态异常的时候,我们需要及时地监控这个节点异常,然后做一些监控或者汇报的一些动作,那么这些东西运用什么控制器来做?

DaemonSet:守护进程控制器

  • 保证集群内的每一个节点都运行一组相同的 pod;
  • 同时还能根据节点的状态保证新加入的节点自动创建对应的 pod;
  • 在移除节点的时候,能删除对应的 pod;
  • 而且它会跟踪每个 pod 的状态,当这个 pod 出现异常、Crash(崩溃) 掉了,会及时地去 recovery 这个状态。

编排文件

image-20220222181455867

  • 和 deployment 差不多,类型不一样罢了

使用场景

  • 存储,GlusterFS 或者 Ceph 之类的东西,需要每台节点上都运行一个类似于 Agent 的东西
  • 日志收集,比如说 logstash 或者 fluentd
  • 监控,每个节点被监控的数据需要往 Promethues 里存

查看 DaemonSet 状态

kubectl get DaemonSet(DaemonSet 可缩写为 ds)

image-20220222182041424

  • desired:需要的 pod 个数
  • up-to-date:最新创建的个数
  • NODE SELECTOR:在 DaemonSet 里面非常有用。有时候我们可能希望只有部分节点去运行这个 pod 而不是所有的节点,所以有些节点上被打了标签的话,DaemonSet 就只运行在这些节点上。

更新 DaemonSet

更新策略

  • RollingUpdate:滚动更新
  • OnDelete:pod 被删除后才会被更新,不会主动中断

DaemonSet Controller

image-20220222182852802

  • 监听 node 事件

其他

  • 前面提到的 yaml 文件,应该称为编排文件
  • 查看 pod 日志:kubectl logs pod <podname>
  • CronJob 主要是用来运作一些清理任务或者说执行一些定时任务,比如说 Jenkins 构建
作者:Yuyy
博客:https://yuyy.info
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇