使用 CronJob 运行自动化任务
使用任务管理器优化运行速度 #生活技巧# #数码产品使用技巧# #电脑操作指南#
本页演示如何使用 Kubernetes CronJob 对象运行自动化任务。
准备开始
你必须拥有一个 Kubernetes 的集群,且必须配置 kubectl 命令行工具让其与你的集群通信。 建议运行本教程的集群至少有两个节点,且这两个节点不能作为控制平面主机。 如果你还没有集群,你可以通过 Minikube 构建一个你自己的集群,或者你可以使用下面的 Kubernetes 练习环境之一:
KillercodaKodeKloud玩转 Kubernetes创建 CronJob
CronJob 需要一个配置文件。 以下是针对一个 CronJob 的清单,该 CronJob 每分钟运行一个简单的演示任务:
apiVersion: batch/v1 kind: CronJob metadata: name: hello spec: schedule: "* * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox:1.28 imagePullPolicy: IfNotPresent command: - /bin/sh - -c - date; echo Hello from the Kubernetes cluster restartPolicy: OnFailure
执行以下命令以运行此 CronJob 示例:
kubectl create -f https://k8s.io/examples/application/job/cronjob.yaml
输出类似于:
cronjob.batch/hello created
创建好 CronJob 后,使用下面的命令来获取其状态:
kubectl get cronjob hello
输出类似于:
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE hello */1 * * * * False 0 <none> 10s
就像你从命令返回结果看到的那样,CronJob 还没有调度或执行任何任务。 等待大约一分钟,以观察作业的创建进程:
kubectl get jobs --watch
输出类似于:
NAME COMPLETIONS DURATION AGE hello-4111706356 0/1 0s hello-4111706356 0/1 0s 0s hello-4111706356 1/1 5s 5s
现在你已经看到了一个运行中的任务被 “hello” CronJob 调度。 你可以停止监视这个任务,然后再次查看 CronJob 就能看到它调度任务:
kubectl get cronjob hello
输出类似于:
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE hello */1 * * * * False 0 50s 75s
你应该能看到 hello CronJob 在 LAST SCHEDULE 声明的时间点成功地调度了一次任务。 目前有 0 个活跃的任务,这意味着任务执行完毕或者执行失败。
现在,找到最后一次调度任务创建的 Pod 并查看一个 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 Hello from the Kubernetes cluster
删除 CronJob
当你不再需要 CronJob 时,可以用 kubectl delete cronjob <cronjob name> 删掉它:
kubectl delete cronjob hello
删除 CronJob 会清除它创建的所有任务和 Pod,并阻止它创建额外的任务。 你可以查阅垃圾收集。
网址:使用 CronJob 运行自动化任务 https://www.yuejiaxmz.com/news/view/918094
相关内容
数据库自动任务怎么做自动化运维:使用Ansible简化日常任务
自动化运维:使用Python脚本进行日常任务管理
自动化运维:使用Python脚本简化日常任务
Ansible自动化运维与任务执行
使用 Power Automate 自动执行任务
AppTask: 使用Python实现日常APP任务自动化
使用Python实现简单的任务自动化
如何使用 Python 自动化日常任务
如何在 Linux 上使用 Bash 自动化任务