无法在 k8s 中创建 cronjob

Unable to create a cronjob in k8s

我正在尝试创建一个 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            

Cronjob 属于 batch/v1k8sapi。您应该在创建资源之前检查 api 版本,无论如何它们有时会更改。

https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/

您可以使用

检查资源的 api-version

kubectl api-resources

命令。 在这种情况下:

kubectl api-resources | grep cronjob | awk -v N=3 '{print $N}'

输出为'batch/v1'。

如果你是 运行 kubernetes 1.20 或更低版本,正确的 apiVersion 值是:

apiVersion: batch/v1beta1

如果你是 运行 kubernetes 1.21 或更高版本,它

apiVersion: batch/v1