k8s 定时任务需求模板
背景
需求:定时任务,每分钟访问一次:curl -vo /dev/null http://172.22.112.229:32080/pic/tx00houfsx.png
步骤
创建 CronJob YAML 文件
# cat fsx.yaml
apiVersion: batch/v1
kind: CronJob
metadata:name: fsx-cronjobnamespace: filebeat-test
spec:schedule: "* * * * *" # 每分钟执行一次successfulJobsHistoryLimit: 3 # 保留最近 3 个成功的 Job 。如果不指定,每次定时任务创建的pod都不会被自动删除,这会累积太多Completed/Failed状态podfailedJobsHistoryLimit: 1 # 保留最近 1 个失败的 JobjobTemplate:spec:template:spec:containers:- name: fsx-jobimage: mirrors.com:80/dmp/assistantmaster:v1command: ["curl", "-vo", "/dev/null", "http://172.22.112.229:32080/pic/tx00houfsx.png"]restartPolicy: OnFailure
部署流程
创建命名空间(如果尚未创建)
kubectl create namespace filebeat-test
应用 CronJob
将 CronJob 文件应用到 Kubernetes 集群中:
kubectl apply -f fsx-cronjob.yaml
检查 CronJob 状态
你可以使用以下命令检查 CronJob 的状态:
kubectl get cronjob -n filebeat-test
查看 Job 运行情况
当 CronJob 运行时,它会创建一个 Job。你可以查看 Job 的状态:
kubectl get jobs -n filebeat-test
查看日志
如果你想查看 Job 的日志,可以使用以下命令:
kubectl logs <job-name> -n filebeat-test
你可以通过 kubectl get jobs -n filebeat-test 获取 Job 名称。
说明
镜像:使用 mirrors.com:80/dmp/assistantmaster:v1 镜像,只要有 curl 命令即可。
命令:curl -vo /dev/null http://172.22.112.229:32080/pic/tx00houfsx.png 会调用指定的接口,并将输出重定向到 /dev/null,这样不会在 Pod 中保存任何输出。
通过以上步骤,你就可以在 Kubernetes 中成功创建一个定时任务,每分钟调用指定的接口。