Kubernetes

Kubernetes 等待 pod/job

  • May 13, 2021

推送後,我想創建一個 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開始,它們還被設計為刪除自己,這意味著啟用這些功能門可能是實現您想要的最直接的方法。

引用自:https://serverfault.com/questions/981012