我正在尝试创建一个 cronjob ,我为此编写了一个 Springboot 应用程序,并创建了一个 abc-dev.yml 文件用于应用程序配置
错误:无法识别“src/java/k8s/abc-dev.yml”:版本“apps/v1”中没有与类型“CronJob”匹配的内容
apiVersion: apps/v1
kind: CronJob
metadata:
name: abc-cron-job
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
container:
- name: abc-cron-job
image: busybox
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure
如果您运行的是 kubernetes 1.20 或更低版本,则正确的 apiVersion 值为:
apiVersion: batch/v1beta1
如果您运行的是 kubernetes 1.21 或更高版本,则
apiVersion: batch/v1
您可以使用
检查资源的 api 版本kubectl api 资源
命令。 在这种情况下:
kubectl api 资源 | grep 定时任务 | awk -v N=3 '{print $N}'
输出为“batch/v1”。
Cronjob 属于batch/v1 k8s api。在创建资源之前您应该检查 api 版本,以防它们有时会发生变化。
https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/