无法在k8s中创建cronjob

问题描述 投票:0回答:3

我正在尝试创建一个 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 kubernetes-cronjob
3个回答
11
投票

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

apiVersion: batch/v1beta1

如果您运行的是 kubernetes 1.21 或更高版本,则

apiVersion: batch/v1


7
投票

您可以使用

检查资源的 api 版本

kubectl api 资源

命令。 在这种情况下:

kubectl api 资源 | grep 定时任务 | awk -v N=3 '{print $N}'

输出为“batch/v1”。


2
投票

Cronjob 属于batch/v1 k8s api。在创建资源之前您应该检查 api 版本,以防它们有时会发生变化。

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

© www.soinside.com 2019 - 2024. All rights reserved.