前言
我们按照《使用Kubeadm搭建Kubernetes(1.13.1)集群》 搭建好集群后,就可以在上面运行任务了。但工作中我们有时会碰到一些“流氓应用”
,这些应用会无限制地使用资源,最终可能导致节点宕机,甚至导致“集群雪崩”
。为了消除这些“流氓应用”带来的隐患,我们需要设置每个节点或应用可使用资源量,当节点或应用使用资源超过限制时,就自动移除这些应用。
移除策略
kubelet
能够主动监测和防止计算资源的全面短缺。在那种情况下,kubelet
可以主动的结束一个或多个 pod 以回收短缺的资源。当 kubelet 结束一个 pod 时,它将终止 pod 中的所有容器,而 pod 的 PodPhase 将变为 Failed。
移除信号
kubelet 支持按照以下表格中描述的信号触发移除决定。每个信号的值在 description 列描述,基于 kubelet 摘要 API。
移除信号 | 描述 |
---|---|
memory.available | memory.available := node.status.capacity[memory] - node.stats.memory.workingSet |
nodefs.available | nodefs.available := node.stats.fs.available |
nodefs.inodesFree | nodefs.inodesFree := node.stats.fs.inodesFree |
imagefs.available | imagefs.available := node.stats.runtime.imagefs.available |
imagefs.inodesFree | imagefs.inodesFree := node.stats.runtime.imagefs.inodesFree |
上面的每个信号都支持字面值或百分比的值。基于百分比的值的计算与每个信号对应的总容量相关。
网友评论