教程:构建 CronJob
太多教程一上来就是生硬的场景或玩具应用,只能讲清基础,然后在复杂内容面前戛然而止。本教程不同:我们会用 Kubebuilder 贯穿(几乎)全谱系的复杂度,从简单开始,逐步构建到一个功能相当完备的示例。
让我们假设(是的,这有点点“设定”)我们已经厌倦了 Kubernetes 中非 Kubebuilder 实现的 CronJob 控制器的维护负担,想用 Kubebuilder 重新实现它。
CronJob 控制器(双关非本意)的工作是在 Kubernetes 集群上以固定间隔运行一次性任务。它是构建在 Job 控制器之上的,而 Job 控制器的任务是将一次性任务运行一次并确保完成。
我们不会顺带重写 Job 控制器,而是把这当作一个学习机会,看看如何与外部类型进行交互。
为项目搭建脚手架
如在快速开始中所述,我们需要为新项目搭建脚手架。请先确认你已经安装了 Kubebuilder,然后为新项目创建脚手架:
# 创建项目目录,然后执行 init 命令
mkdir project
cd project
# 我们使用 tutorial.kubebuilder.io 作为域名,
# 因此所有 API 组都将是 <group>.tutorial.kubebuilder.io。
kubebuilder init --domain tutorial.kubebuilder.io --repo tutorial.kubebuilder.io/project
现在我们已经就位,让我们看看 Kubebuilder 到目前为止为我们搭了些什么……
