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获取cronjob cmd给出了这个 $ kubectl get cronjob
NAME KIND
node-timer-analytics-parser-controller CronJob.v1beta1.batch
$ kubectl get job 说 找不到资源。
我也试过这个 $ kubectl describe cronjob node-timer-analytics-parser-controller ,它给出了
Name: node-timer-analytics-parser-controller
Namespace: default
Labels: <none>
Events: <none>
此docker镜像/容器对sql数据库执行一些广泛的SQL查询(并行查询40-50个查询) 我在本地测试了docker容器,它没有任何问题。一次完整的执行可能需要大约1-5分钟。我不明白为什么它不适用于 Kubernetes
我甚至尝试了example of the k8 documentation似乎已经完成工作,知道我的cronjob有什么问题。
答案 0 :(得分:1)
据推测,你正在运行Kubernetes 1.8,根据release notes 1.7.8是在GKE中运行的默认版本。您可以使用kubectl version
如果您正在运行&lt; 1.8然后你需要根据the CronJob documentation启用cron作业。我不使用GKE,但看起来你在集群创建时这样做:
gcloud alpha container clusters create my-cluster --enable-kubernetes-alpha
有关详细信息,请查看About Alpha Features
即使有1.8似乎也会在release notes上列为新功能
您现在可以在Container Engine群集上运行CronJobs。 CronJob是Kubernetes 1.8版的Beta版功能。
所以你可能需要进行升级。
我还注意到您使用的是天蓝色容器。可能值得从示例CronJob
开始,看看你是否可以先让它工作。