GKE中CronJob修改配置后仍生成旧配置Pending Pod问题求助
问题原因
CronJob更新配置后,之前已经触发生成的Job资源不会自动同步新配置。你第一次设置5Gi内存请求时,CronJob已经生成了对应配置的Job,这个Job会持续尝试创建符合自身配置的Pod——哪怕你删了pending的Pod,这个旧Job还在,自然会重新创建用旧配置的Pod。
解决办法
不用删除CronJob本身,只需要清理掉旧的Job资源即可:
- 先列出当前所有Job,找到和你的CronJob关联的旧Job(名称通常是CronJob名加上一串随机后缀):
kubectl get jobs - 删除这个旧Job:
kubectl delete job <旧Job的名称> - 之后CronJob会按照最新的10Mi内存请求配置,生成新的Job,新Job创建的Pod就能正常调度了。
额外技巧
如果不想等CronJob的下一次调度时间,想立刻验证新配置,可以手动基于更新后的CronJob创建一个临时Job:
kubectl create job --from=cronjob/<你的CronJob名称> <临时Job名称>
这个临时Job会直接使用CronJob的最新配置,快速生成符合要求的Pod。
内容的提问来源于stack exchange,提问作者sar
相关产品推荐
相关产品推荐

