推送后,我想创建一个 kaniko 构建作业,它目前可以工作,但在作业完成后,它显示:
kaniko-5jbhf 0/1 Completed 0 9m13s
Run Code Online (Sandbox Code Playgroud)
然而,当我运行以下命令时,它只是无限期地暂停:
kubectl wait --timeout=-1s --for=condition=Completed pod/kaniko
Run Code Online (Sandbox Code Playgroud)
我的问题可以概括为两部分:1)。我如何等待 Pod/作业完成?2)。作业完成后如何删除?
我已经尝试过 ttlSecondsAfterFinished 但在集群中启用功能门是有问题的,并且没有如何执行此操作的示例。
小智 5
为了wait
评估资源的状态,您需要正确识别它。对于第二个片段,您需要提供pod id而不是作业名称:kubectl wait --timeout=-1s --for=condition=Completed pod/kaniko-5jbhf
。但是,将作业本身称为 的语法似乎是正确的job/kaniko
。
供进一步参考wait
。
现在,对于Job
删除,如果您不想使用功能门,我认为您可以以编程方式访问 API来定位并删除完成的文件Jobs
,或者使它们依赖于级联删除它们的父对象。具体来说Jobs
,只有CronJobs
. 缺点是它们CronJobs
是按时间安排的对象,这意味着您需要开始基于时间的对象进行设计。
考虑到按照设计,Jobs
它们应该在完成后保留下来,以保存与处理数据时发生的事情相关的数据。此外,从v1.12开始,它们还被设计为删除自身,这意味着启用这些功能门可能是实现您想要的最直接的方法。
归档时间: |
|
查看次数: |
19590 次 |
最近记录: |