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
看看是否可以先让它工作。