k8s集群资源(pod、镜像等)自动回收

垃圾收集是 Kubernetes 用于清理集群资源的各种机制的统称。
自动回收机制可以避免随着时间推移,系统中的镜像等越来越多,导致硬盘等资源不足。
垃圾收集允许系统自动清理如下资源:

  • 失败的 Pod
  • 已完成的 Job
  • 不再存在属主引用的对象
  • 未使用的容器和容器镜像
  • 动态制备的、StorageClass 回收策略为 Delete 的 PV 卷
  • 阻滞或者过期的 CertificateSigningRequest (CSRs)
  • 在以下情形中删除了的节点对象:
    – 当集群使用云控制器管理器运行于云端时;
    – 当集群使用类似于云控制器管理器的插件运行在本地环境中时。
  • 节点租约对象

失败的 Pod

对于已失败的 Pod 而言,对应的 API 对象仍然会保留在集群的 API 服务器上, 直到用户或者控制器进程显式地将其删除。
Pod 的垃圾收集器(PodGC)是控制平面的控制器,它会在 Pod 个数超出所配置的阈值 (根据 kube-controller-manager 的 terminated-pod-gc-threshold 设置)时删除已终止的 Pod(阶段值为 Succeeded 或 Failed)。 这一行为会避免随着时间演进不断创建和终止 Pod 而引起的资源泄露问题。

此外,PodGC 会清理满足以下任一条件的所有 Pod:

  1. 孤儿 Pod - 绑定到不再存在的节点,
  2. 计划外终止的 Pod
  3. 终止过程中的 Pod,当启用 NodeOutOfServiceVolumeDetach 特性门控时, 绑定到有 node.kubernetes.io/out-

你可能感兴趣的:(k8s,kubernetes,java,容器)