部署特殊类型组件
概述
Rainbond 支持在创建组件时选择不同的部署类型。除常见的无状态服务和有状态服务外,还支持 Job、CronJob 和 DaemonSet 等特殊类型组件。
这些类型适合以下场景:
| 部署类型 | 适用场景 |
|---|---|
| Job | 一次性批处理任务,任务完成后容器退出 |
| CronJob | 定时任务,按 Cron 表达式周期性创建 Job |
| DaemonSet | 守护进程组件,在每个符合条件的节点上运行一个实例 |
详细信息可参考 Kubernetes 官方文档:
创建时选择组件类型
创建组件时,在 基础信息设置 中可以修改组件类型。根据业务场景选择对应类型:
| 组件类型 | 页面说明 | 适用场景 |
|---|---|---|
| 任务(Job类型) | 部署为任务(Job类型),一般用于一次性任务,完成后容器就退出。 | 数据初始化、一次性脚本、离线批处理 |
| 周期性任务(Cronjob类型) | 部署为周期性任务(Cronjob类型),一般用于处理周期性的、需反复执行的定时任务。 | 定时同步、定时报表、定时清理 |
| 守护进程组件(DaemonSet类型) | 部署为守护进程组件(DaemonSet类型),一般用于每个节点都需要运行的日志、监控、节点代理类组件。 | 日志采集、节点监控、节点代理 |
创建完成后,如果需要修改组件部署类型,进入组件的 高级 -> 设置 -> 其他设置,在组件部署类型中调整。
部署 Job 组件
Job 适合运行一次性任务,例如数据初始化、离线批处理、一次性脚本执行等。创建组件时,在 基础信息设置 中将组件类型修改为 部署为任务(Job类型),一般用于一次性任务,完成后容器就退出。
Job 任务执行完成后,可以点击重启按钮重新执行该任务,也可以点击关闭任务。
部署 CronJob 组件
CronJob 适合运行周期性任务,例如定时同 步、定时报表、定时清理等。创建组件时,在 基础信息设置 中将组件类型修改为 部署为周期性任务(Cronjob类型),一般用于处理周期性的、需反复执行的定时任务。
常见任务策略包括:
- 定时配置:CronJob 类型必填,例如
*/1 * * * *表示每分钟执行一次 - 最大重试次数:任务失败后的重试次数
- 并行任务数:允许同时运行的 Pod 数量
- 最大运行时间:任务运行超过指定秒数后停止
- 完成数:完成该 Job 需要成功结束的 Pod 数量
CronJob 任务状态可在组件页面查看。
部署 DaemonSet 组件
DaemonSet 在 Rainbond 中显示为 守护进程组件(DaemonSet类型)。它会在每个符合调度条件的节点上运行一个组件实例,适合部署节点级服务。
常见使用场景包括:
- 日志采集 Agent
- 节点监控 Agent
- 网络或存储节点代理
- 每个节点都需要运行的系统辅助服务
创建方式:
- 创建组件时进入 基础信息设置。
- 部署类型选择 守护进程组件(DaemonSet类型)。
- 根据需要配置镜像、环境变量、存储和 Kubernetes 高级属性。
- 创建组件并等待实例调度完成。
DaemonSet 的实例数量由集群节点和调度条件决定,不适合像普通无状态组件一样手动设置固定副本数。如果需要限制运行节点,可通过 Kubernetes 高级属性配置 nodeSelector、affinity 或 tolerations。
DaemonSet 类型暂不支持与其他组件部署类型在线互相切换。若需要从普通组件改为 DaemonSet,建议重新创建组件,并在变更前确认业务访问、存储和节点调度策略。
修改部署类型和任务策略
创建组件后,可以进入组件的 高级 -> 设置 -> 其他设置 查看和修改组件部署类型、任务策略等配置。修改后需要按页面提示更新组件,使配置生效。