k8s节点磁盘压力驱逐
节点压力驱逐是 kubelet 主动终止 Pod 以回收节点上资源的过程。当这些资源中的一个或者多个达到特定的消耗水平, kubelet 可以主动地使节点上的 Pod 失效,以回收资源。只有在没有更改任何参数的情况下,硬驱逐阈值才会被设置成这些默认值。如果你更改了任何参数的值,则其他参数的取值不会继承其默认值设置,而将被设置为零。如果回收节点级资源的尝试没有满足需求,kubelet 会根据所有容器
·
节点压力驱逐是 kubelet 主动终止 Pod 以回收节点上资源的过程。kubelet 监控集群节点的内存、磁盘空间和文件系统的 inode 等资源。 当这些资源中的一个或者多个达到特定的消耗水平, kubelet 可以主动地使节点上的 Pod 失效,以回收资源。
kubelet 支持以下文件系统分区:
- nodefs:节点的主要文件系统,用于本地磁盘卷、emptyDir、日志存储等。 例如,nodefs 包含 /var/lib/kubelet/。
- imagefs:可选文件系统,供容器运行时存储容器镜像和容器可写层。
驱逐条件包括软驱逐和硬驱逐。其中kubelet具有以下默认的硬驱逐条件:
- memory.available<100Mi
- nodefs.available<10%
- imagefs.available<15%
- nodefs.inodesFree<5%
当达到硬驱逐条件时, kubelet 会立即杀死 pod。只有在没有更改任何参数的情况下,硬驱逐阈值才会被设置成这些默认值。 如果你更改了任何参数的值,则其他参数的取值不会继承其默认值设置,而将被设置为零。 为了提供自定义值,你应该分别设置所有阈值。
当出现imagefs.available<15%的情况时,如果存在专用的imagefs文件系统,kubelet 会执行以下操作:
- 对死亡的 Pod 和容器进行垃圾收集
- 删除未使用的镜像
如果回收节点级资源的尝试没有满足需求,kubelet 会根据所有容器的可写层使用情况,即磁盘使用量对 Pod 进行排序驱逐。
更多推荐
已为社区贡献16条内容
所有评论(0)