AI 助教问 AI 助教
东方瑞通 · CKA

DaemonSet、Job与CronJob

DaemonSet 保证每个 Node 运行一个 Pod 副本;Job 运行一次性任务直到成功完成;CronJob 按时间计划周期性地创建 Job。

考点精讲

  1. 这一组控制器各管一类特定场景。DaemonSet 保证每个符合条件的节点上恰好运行一个 Pod 副本,非常适合日志采集、监控代理、网络插件这类「每台机器都要有」的组件。Job 用于运行一次性或批处理任务,任务成功完成即结束,可用 completions 指定成功次数;它的 restartPolicy 应设为 OnFailure 或 Never,避免失败后无限重启。CronJob 在 Job 之上加了一层时间调度,用 cron 表达式(schedule 字段)周期性创建 Job,适合定时备份、定时报表等场景。记住「每机一个 DaemonSet、干一次活 Job、定时干活 CronJob」,三者边界就清楚了。

记忆技巧

DaemonSet = 每台机器一个
Job = 干一次活,CronJob = 定时干活

常见误区

  • Job 默认 restartPolicy 为 Always 导致失败反复重启
  • DaemonSet 未用 nodeSelector 导致所有节点都部署
  • CronJob 的 cron 表达式时区问题

真题思路

  • 【示例】本页题目为教学模拟题,非真题,仅用于讲解答题思路 需要在每个节点都部署一个日志采集代理,应使用哪种控制器?
    Deployment DaemonSet Job CronJob
    答案:B
    解析:DaemonSet 保证每个节点恰好一个副本,适合日志采集代理;Deployment 是副本集,Job/CronJob 是一次性/定时任务。

常见问题

Q:什么场景用 DaemonSet

A:需要在每个节点都跑一个副本的场景,如日志采集、监控代理、网络插件。

Q:Job 的 restartPolicy 应设为什么

A:OnFailure 或 Never,避免失败后反复重启。

Q:CronJob 和 Job 什么关系

A:CronJob 按 cron 表达式周期性地创建 Job。

相关知识

教材出处:第8章 Kubernetes常用的控制器 DaemonSet、Job与CronJob

AI 助教

让 AI 助教带你深入学习,把你卡住的地方直接问它

随时为您答疑解惑

开始答疑