【发布时间】:2018-09-15 23:09:57
【问题描述】:
我有一个容器,它运行从 MySQL 数据库获取的一些数据,并在 console.log() 中简单地显示结果,并希望在 GKE 中将其作为 cron 作业运行。到目前为止,我的容器在我的本地机器上工作,并已成功将其部署到 GKE(据我所知,没有抛出任何错误)。
但是,创建的 pod 只是保持运行状态,而不是在任务完成后停止。 pod 是否应该在执行完所有代码后自动停止,或者它们是否需要明确的指令才能停止?如果需要,在创建后终止 pod 的命令是什么(通过 Cron 作业)?
我读到默认情况下应该有大约 30 秒的某种终止宽限期,但是在运行了大约 20 分钟的分钟执行的 cronjob 之后,所有的 pod 仍在运行。不确定是否有办法从代码内部终止 pod,否则让 cronjob 生成大量 pod 闲置运行会有点愚蠢。下面是我的 cronjob.yaml:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: test
spec:
schedule: "5 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: test
image: gcr.io/project/test:v1
# env:
# - name: "DELAY"
# value: 15
restartPolicy: OnFailure
【问题讨论】:
-
即使使用 Jobs 对象,您的工作是否完成? kubernetes.io/docs/concepts/workloads/controllers/…
-
他们真的应该在完成后退出。你能发布你的工作配置yaml吗?
-
@mstorkson 我已经使用 cronjob.yaml 文件编辑了我的帖子。
-
@Rico 我会尽快尝试您的建议,但出于好奇,是否有任何预期的差异?
-
@jlyh 基本上,如果该选项没有完成这项工作,这意味着您的特定应用程序有问题。您的应用可能没有发出
exit调用
标签: kubernetes google-cloud-platform google-kubernetes-engine