使用 CronJob 运行自动化任务
你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 建议在至少有两个节点的集群上运行本教程,且这些节点不作为控制平面主机。 如果你还没有集群,你可以通过 构建一个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:
CronJob 需要一个配置文件。 以下是针对一个 CronJob 的清单,该 CronJob 每分钟运行一个简单的演示任务:
执行以下命令以运行此 CronJob 示例:
输出类似于:
cronjob.batch/hello created
kubectl get cronjob hello
输出类似于:
就像你从命令返回结果看到的那样,CronJob 还没有调度或执行任何任务。大约需要一分钟任务才能创建好。
kubectl get jobs --watch
输出类似于:
NAME COMPLETIONS DURATION AGE
hello-4111706356 0/1 0s 0s
现在你已经看到了一个运行中的任务被 “hello” CronJob 调度。 你可以停止监视这个任务,然后再次查看 CronJob 就能看到它调度任务:
kubectl get cronjob hello
输出类似于:
现在,找到最后一次调度任务创建的 Pod 并查看一个 Pod 的标准输出。
说明: Job 名称与 Pod 名称不同。
# 在你的系统上将 "hello-4111706356" 替换为 Job 名称
pods=$(kubectl get pods --selector=job-name=hello-4111706356 --output=jsonpath={.items..metadata.name})
查看 Pod 日志:
kubectl logs $pods
输出类似于:
Fri Feb 22 11:02:09 UTC 2019
当你不再需要 CronJob 时,可以用 kubectl delete cronjob <cronjob name>
删掉它: