版本为"batch/v1"的"定时任务(CronJob)"类型没有匹配项。

27

我使用的是 Kubernetes v1.19.7,在运行 CronJob 示例时。

apiVersion: batch/v1
kind: CronJob
metadata:
  name: express-learn-cronjob
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: hello
              image: busybox
              command:
                - /bin/sh
                - -c
                - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

无法识别"app-cronjob.yml": 在版本"batch/v1"中没有匹配到"cronjob"种类。

可以通过运行kubectl api-versions | grep batch来获取批处理信息。

batch/v1
batch/v1beta1

有什么我错过的吗?我该怎么修复它?

1个回答

49

谢谢,问题已解决,只是好奇为什么API打印v1但我们不能使用它? - seven
一个是API版本,另一个是你创建的资源可用的版本。在1.19.x版本中,您确实可以使用batch/v1作为可用的API资源,但是您没有其中的CronJob资源。 - Juliano Costa
@JulianoCosta 仍然遇到 Kubernetes 版本 1.21.x 的相同问题...现在该怎么办? - Kaivalya Dambalkar
2
对于 k8s 版本 1.21.x,您必须使用 apiVersion: batch/v1,详见此处:https://v1-21.docs.kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/。 - Juliano Costa
2
这个 batch/v1beta1 在使用 Kubernetes 1.20 的 OpenShift 4.7 中适用。https://docs.openshift.com/container-platform/4.7/release_notes/ocp-4-7-release-notes.html#ocp-4-7-about-this-release - Adrian Escutia Soto
@JulianoCosta,你不需要在1.21版本中这样做,因为它只会显示一个警告。但是,在1.25版本中,你确实需要使用batch/v1 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接