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替代

  • 相关阅读:
    Atitit.ide eclipse编译速度慢的解决
    Atitit.ide eclipse编译速度慢的解决
    Atitit.可视化与报表原理与概论
    Atitit.可视化与报表原理与概论
    Atitit.数据检索与网络爬虫与数据采集的原理概论
    Atitit.数据检索与网络爬虫与数据采集的原理概论
    Atitit 游戏的原理与概论attilax总结
    Atitit 游戏的原理与概论attilax总结
    Atiti.ui原理与gui理论
    Atiti.ui原理与gui理论
  • 原文地址:https://www.cnblogs.com/apink/p/15160934.html
Copyright © 2011-2022 走看看