2016-03-01 65 views
0

我正在尋找標準的方法來清除所有節點上的kubernetes所有未使用的容器。現在我正在這樣做。清除未使用的容器kubernetes

purge.sh

#!/usr/bin/env bash 
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 
# Author: Ali Said Omar 
# Created: '01/03/2016' 
NODES= 


function get_nodes(){ 
    # --label-columns=NAME does not filter on NAME column 
    NODES=`kubectl get nodes --label-columns=NAME --no-headers | awk '{print $1}'` 
} 

function purge_on_nodes(){ 
    for NODE in $NODES 
    do 
     glcoud compute ssh $NODE -A "sudo docker ps -aq | xargs sudo docker rm" 
    done 
} 

get_nodes 
purge_on_nodes 

回答

0

有沒有標準的方法來做到這一點,因爲系統是爲你照顧它。您是否有特別的理由需要這樣做?或者系統以某種方式發生故障?

+0

當我的豆莢啓動失敗時,我需要在再次嘗試之前清除所有失敗的豆莢。 –

+0

你是怎麼確定的?嘗試創建新的時會出錯嗎?如果是這樣,那麼錯誤是什麼? –

+0

我終於找到根本原因,但日誌kubectl日誌沒有顯示任何東西。 –

0

使用Kubernetes Garbage collector。有設置(minimum-container-ttl-duration),這將幫助您清除舊的容器。

+0

謝謝,但仍然在尋找強制垃圾的方式或使用yaml文件的選項(文檔不太清楚) –