k8s 定时任务需求模板

发布于:2025-09-03 ⋅ 阅读:(17) ⋅ 点赞:(0)

背景

需求:定时任务,每分钟访问一次: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-cronjob
  namespace: filebeat-test
spec:
  schedule: "* * * * *"  # 每分钟执行一次
  successfulJobsHistoryLimit: 3  # 保留最近 3 个成功的 Job 。如果不指定,每次定时任务创建的pod都不会被自动删除,这会累积太多Completed/Failed状态pod
  failedJobsHistoryLimit: 1  # 保留最近 1 个失败的 Job
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: fsx-job
            image: mirrors.com:80/dmp/assistantmaster:v1
            command: ["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 中成功创建一个定时任务,每分钟调用指定的接口。


网站公告

今日签到

点亮在社区的每一天
去签到