zoukankan      html  css  js  c++  java
  • kubelet 垃圾回收策略

    功能描述

    垃圾回收是kubelet的一个功能,用来清理节点上未使用的镜像及容器

    1. kubelet  每分钟执行一次容器的垃圾回收
    2. kubelet  每5分钟执行一次对镜像的垃圾回收

    Kubernetes不建议使用外部的命令及工具垃圾对此类资源的回收,以免影响kubelet正常执行垃圾回收而引起资源回收失败

    镜像回收

    Kubernetes借助于cAdvisor通过imageManager管理所有镜像的生命周期

    kubelet执行镜像回收,依据二个参数 HighThresholdPercent 和 LowThresholdPercent,磁盘使用率超过上限阈值(HighThresholdPercent)将触发垃圾回收。 垃圾回收将删除最近最少使用的镜像,直到磁盘使用率满足下限阈值(LowThresholdPercent)

    容器回收

    容器垃圾回收的三个用户变量

    1. MinAge 是容器可以被执行垃圾回收的最小生命周期
    2. MaxPerPodContainer  每个Pod内允许的最大Dead容器
    3. MaxContainers  最大Total Dead容器值

    如何禁用参数,为每个参数的值设置为0,就代表禁用参数

    kubelet对无法识别的、已经删除的、已超出上面3个参数的范围定义进行处理时,优先清除时间最久的容器。城某些场景下会存在MaxContainers 与 MaxPerPodContainer冲突,现象是所有Pod MaxPerPodContainer的总和会超过MaxContainers,如何规避这种情况,设置MaxPerPodContainer的值为 1驱逐相对时间最久的容器,此外,在Pod中确定已经被deleted的容器只要超过MinAge设定的值立即执行清除(removed)简单点的理解就是当你执行kubectl delete pod 时超过MinAge的值执行清除操作

    具体配置参数

    以下均为kubelet启动的参数,可以进行相关的调整

    镜像回收

    • image-gc-high-threshold    触发镜像垃圾回收的磁盘使用率百分比(config.yaml imageGCHighThresholdPercent)默认值为 85%
    • image-gc-low-threshold     镜像垃圾回收试图释放资源后达到的磁盘使用率百分比(config.yaml imageGCLowThresholdPercent)默认值为 80%

    容器回收

    • minimum-container-ttl-duration,容器在被垃圾回收之前的最小生命周期,默认是 0 分钟。 这意味着每个完成的容器都会被执行垃圾回收
    • maximum-dead-containers-per-container,每个Container保留的最大历史实例。默认值为 1
    • maximum-dead-containers,kubelet全局历史实例保留值, 默认值是 -1,无限制

    以上参数目前已经不再使用了,改用--eviction-hard or --eviction-soft替代

  • 相关阅读:
    383. Ransom Note
    598. Range Addition II
    453. Minimum Moves to Equal Array Elements
    492. Construct the Rectangle
    171. Excel Sheet Column Number
    697. Degree of an Array
    665. Nondecreasing Array
    视频网站使用H265编码能提高视频清晰度吗?
    现阶段的语音视频通话SDK需要解决哪些问题?
    企业远程高清会议平台视频会议系统在手机端使用的必备要求有哪些?
  • 原文地址:https://www.cnblogs.com/apink/p/15160934.html
Copyright © 2011-2022 走看看