kubernetes實踐之五十四:垃圾回收機制

百聯達發表於2018-06-10
一:前言

Kubernetes系統在長時間執行後,Kubernetes Node會下載非常多的映象,其中可能存在很多過期的映象。同時因為執行大量的容器,容器推出後就變成死亡容器,將資料殘留在宿主機上,這樣一來,過期映象和死亡容器都會佔用大量的硬碟空間。如果磁碟空間被用光,可能會發生非常糟糕的情況,甚至會導致磁碟的損壞。為此kubelete會進行垃圾清理工作,即定期清理過期映象和死亡容器。不推薦使用其它管理工具或手工進行容器和映象的清理,因為kubelet需要透過容器來判斷pod的執行狀態,如果使用其它方式清除容器有可能影響kubelet的正常工作。

二:映象清理

Kubernetes透過kubelet整合的cadvisor進行映象的回收,有兩個引數可以設定:--image-gc-high-threshold和--image-gc-low-threshold。當用於儲存映象的磁碟使用率達到百分之--image-gc-high-threshold時將觸發映象回收,刪除最近最久未使用(LRU,Least Recently Used)的映象直到磁碟使用率降為百分之--image-gc-low-threshold或無映象可刪為止。預設--image-gc-high-threshold為90,--image-gc-low-threshold為80。

三:容器清理

容器的回收有三個引數可設定:
1.--minimum-container-ttl-duration:死亡容器能夠被刪除的最小TTL,預設是1分鐘
2.--maximum-dead-containers-per-container:每個Pod允許存在的最大死亡容器數目,預設是2
3.--maximum-dead-containers: 執行存在的最大死亡容器數目,預設值是100.
Kubelet定時執行容器清理,每次根據以上3個引數選擇死亡容器刪除,通常情況下優先刪除建立時間最久的死亡容器。Kubelet不會刪除非Kubelet管理的容器。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2155916/,如需轉載,請註明出處,否則將追究法律責任。

相關文章