Kubernetes(GKE) cronjob不起作用


apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: node-timer-analytics-parser-cronjob
spec:
  schedule: "0 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: node-timer-analytics-parser-cronjob
            image: round0.azurecr.io/node-timer-analytics-parser:latest
            args:
            - /bin/sh
            - -c
            - date; npm start
          restartPolicy: OnFailure
          imagePullSecrets:
            - name: regsecret

我有一个以下 YAML 文件,它创建了一个 cronjob,但 $ kubectl get cronjob cmd 给出了这个$ kubectl get cronjob

NAME                                     KIND
node-timer-analytics-parser-controller   CronJob.v1beta1.batch

$ kubectl 得到工作没有找到资源。

我也尝试了这个$ kubectl描述cronjob节点计时器分析解析器控制器,它给出了

Name:       node-timer-analytics-parser-controller
Namespace:  default
Labels:     <none>
Events:     <none>

这个 docker 镜像/容器对 sql 数据库执行一些广泛的 sql 查询(并行 40-50 个查询)。
我在本地测试了 docker 容器,它运行没有任何问题。一次完整的执行可能需要大约 1-5 分钟。我不明白为什么它在 Kubernetes 中不起作用

我什至尝试了 k8 文档的示例,它似乎正在工作,知道我的 cronjob 有什么问题。

根据

发行说明,假设您正在运行 Kubernetes 1.8,1.7.8 是 GKE 中运行的默认版本。您可以使用kubectl version检查正在运行的版本

如果您运行的是 1.8 <,则需要根据 CronJob 文档启用 cron 作业。我不使用 GKE,但看起来您在集群创建时这样做:

gcloud alpha container clusters create my-cluster --enable-kubernetes-alpha

有关详细信息,请查看关于 Alpha 版功能

即使使用 1.8 似乎也作为新功能列在发行说明中

现在,您可以在容器引擎集群上运行 CronJobs。CronJob 是 Kubernetes 1.8 版本中的测试版功能。

因此,您可能需要运行升级。

我还注意到您使用的是 Azure 容器。可能值得从示例开始,CronJob看看是否可以先让它工作。

最新更新