使用kubeadm在Kubernetes集群中设置CronJob的步骤如下:
-
编写CronJob YAML文件:创建包含apiVersion、schedule表达式、jobTemplate等关键字段的YAML文件。示例字段:
apiVersion: batch/v1 kind: CronJob metadata: name: example-cronjob spec: schedule: "*/5 * * * *" # 每5分钟执行一次 concurrencyPolicy: Forbid jobTemplate: spec: template: spec: containers: - name: cron-container image: busybox command: ["/bin/sh", "-c", "echo Hello Kubernetes CronJob"] restartPolicy: OnFailure
-
部署CronJob:通过
kubectl apply -f cronjob.yaml
提交到集群。 -
验证状态:使用
kubectl get cronjobs
查看调度状态,kubectl get jobs --watch
观察Job触发情况,kubectl logs <pod-name>
检查任务日志。
注意事项:
- 确保schedule字段符合Cron格式(UTC时间)
- 设置合理的
startingDeadlineSeconds
和successfulJobsHistoryLimit
- 生产环境需添加resources资源限制
- 可通过
kubectl edit cronjob <name>
动态更新配置 - 时区差异需在应用层处理(k8s v1.25+支持时区字段)