考点精讲
- 这一组控制器各管一类特定场景。DaemonSet 保证每个符合条件的节点上恰好运行一个 Pod 副本,非常适合日志采集、监控代理、网络插件这类「每台机器都要有」的组件。Job 用于运行一次性或批处理任务,任务成功完成即结束,可用 completions 指定成功次数;它的 restartPolicy 应设为 OnFailure 或 Never,避免失败后无限重启。CronJob 在 Job 之上加了一层时间调度,用 cron 表达式(schedule 字段)周期性创建 Job,适合定时备份、定时报表等场景。记住「每机一个 DaemonSet、干一次活 Job、定时干活 CronJob」,三者边界就清楚了。
记忆技巧
DaemonSet = 每台机器一个
Job = 干一次活,CronJob = 定时干活
Job = 干一次活,CronJob = 定时干活
常见误区
- Job 默认 restartPolicy 为 Always 导致失败反复重启
- DaemonSet 未用 nodeSelector 导致所有节点都部署
- CronJob 的 cron 表达式时区问题
真题思路
常见问题
Q:什么场景用 DaemonSet
A:需要在每个节点都跑一个副本的场景,如日志采集、监控代理、网络插件。
Q:Job 的 restartPolicy 应设为什么
A:OnFailure 或 Never,避免失败后反复重启。
Q:CronJob 和 Job 什么关系
A:CronJob 按 cron 表达式周期性地创建 Job。
相关知识
教材出处:第8章 Kubernetes常用的控制器 DaemonSet、Job与CronJob