k8s的Garbage Collection回收機制

k8s的Garbage Collection回收機制

Gc主要由kubelet執行,kubelet進程啓動時會自動創建兩個GC,一個負責回收image 另一個負責回收container。Images回收會5分鐘執行一次,container會1分鐘執行一次。

Kubelet裏有關於回收機制的參數,可以自定義配置,也可使用其默認配置。

image回收參數

主要分三個參數:

A:--minimum-image-ttl-duration (容器運行完之後的生存時間,默認爲0)

B:--image-gc-high-threshold (磁盤最高消耗百分比,默認爲90%。表明當磁盤佔用高達90%時,會自動觸發image回收機制)

C:--image-gc-low-threshold (磁盤最低消耗百分比,默認爲80%,當磁盤佔用低於80%時將不會觸發image回收)

container回收

主要分爲三個參數:

A:--minimum-container-ttl-duration (容器運行結束之後可以存活的時間,默認爲0)

B:--maximum-dead-container-per-container (一個pod上可以留下運行結束之後的容器的個數,默認爲2)

C:--maximum-dead-containers (一個node上可以留下運行結束之後的容器個數,默認爲240)

當不需要回收container時,自定義將A參數設置爲0,BC參數設置爲負數,則不會有回收container行爲。

Kubelet判斷回收的對象是根據探測針反饋來執行的。探測針分爲LivenessProbe探測針與ReadinessProbe探針兩種。

LivenessProbe探針:判斷容器是否健康。若不健康,則回收並根據重啓策略重啓container。只要container裏不包含探針則表明該容器健康。

探針健康判斷機制爲:

A:ExecAction :在container內部執行命令 狀態碼爲0,則健康。反之,不健康。

B:TcpSocketAction:使用 container的ip+port 執行tcp檢查,若能訪問則表明健康,反之,則不健康。

C:HttpGetAction:使用container ip+port和調用HTTP get方法,響應狀態碼在200與400之間則健康。反之,則不健康。

2.Readiness探針:判斷容器是否啓動完成且準備接受請求,若失敗,則將pod狀態修改,並從service的endpoint中刪除該容器所在的pod的ip。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章