2016-04-03 32 views
8

從我所瞭解的工作對象應該在一段時間後收穫豆莢。 但是在我的GKE集羣(Kubernetes 1.1.8)上,似乎「kubectl get pods -a」可以列出幾天前的pods。Kubernetes工作清理

所有都是使用作業API創建的。

我注意到刪除作業後用 kubectl刪除作業 豆莢也被刪除了。

這裏我主要關心的是,我將在批處理作業中運行羣集上的數千和數萬個容器,並且不想超載內部待辦事項系統。

回答

1

在kubernetes V1.2,對於具有全局閾值--terminated-pod-gc-threshold=12500(見旗controller manager。我不知道任何GC機制在V1.1.8終止豆莢收穫終止豆莢一個垃圾收集器。您可能希望運行一個腳本/ pod來定期清理豆莢/作業,以防止主組件被淹沒。順便說一句,有一個開放的問題automatically adjust the GC threshold

1

這是喬布斯甚至在Kubernetes 1.3 。作業和它的pod都會留在系統中,直到你手動刪除它們,這是爲了給你提供一種方法來查看沒有被某種機制傳送到外部的豆莢結果(即通過日誌),或者檢查錯誤,警告或其他診斷輸出。

推薦/ official擺脫豆莢的方法是刪除作業,如上所述。使用垃圾收集器只會刪除豆莢,但作業本身仍然會在系統中。

如果您不想手動刪除作業,則可以編寫一個正在羣集中運行的小腳本,並檢查已完成的作業並刪除它們。可悲的是,計劃作業只有coming in 1.4,但是您可以在普通的代理程序中運行該腳本。

22

它看起來像Kubernetes 1.6(和v2alpha1 api版本),如果您使用cronjobs創建作業(反過來創建您的豆莢),您將可以使用limit多少箇舊作業被存管。只需添加以下到你的工作規範:[至少在1.5版]

successfulJobsHistoryLimit: X 
failedJobsHistoryLimit: Y 

其中X和Y的系統應該如何很多以前運行的作業保持周圍的限制(它保持工作圍繞無限期默認)

+1

小修正至少1.6版!通過使用'kubectl version'確保服務器和客戶端都在1.6版本 –