Kubernetes
Kubernetes 等待 pod/job
推送後,我想創建一個 kaniko 建構作業,它目前可以工作,但在作業完成後它顯示:
kaniko-5jbhf 0/1 Completed 0 9m13s
然而,當我執行以下命令時,它只是無限期地暫停:
kubectl wait --timeout=-1s --for=condition=Completed pod/kaniko
我的問題可以概括為兩部分:1)。如何等待 pod/job 完成?2)。作業完成後如何刪除?
我已經嘗試過 ttlSecondsAfterFinished 但在集群中啟用功能門是有問題的,並且沒有如何做到這一點的範例。
為了
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開始,它們還被設計為刪除自己,這意味著啟用這些功能門可能是實現您想要的最直接的方法。