从零开始入门 K8s | Kubernetes 调度和资源管理(15)

另外 , 当我们开启了 kubelet 的一个特性 , 叫 cpu-manager-policy=static 的时候 , 我们 Guaranteed Qos , 如果它的 request 是一个整数的话 , 比如说配了 2 , 它会对 Guaranteed Pod 进行绑核 。 具体的像下面这个例子 , 它分配 CPU0 和 CPU1 给 Guaranteed Pod 。

非整数的 Guaranteed/Burstable/BestEffort , 它们的 CPU 会放在一块 , 组成一个 CPU share pool , 比如说像上面这个例子 , 这台节点假如说有 8 个核 , 已经分配了 2 个核给整数的 Guaranteed 绑核 , 那么剩下的 6 个核 CPU2~CPU7 , 它会被非整数的 Guaranteed/Burstable/BestEffort 共享 , 然后它们会根据不同的权重划分时间片来使用 6 个核的 CPU 。

另外在 memory 上也会按照不同的 QoS 进行划分 OOMScore 。 比如说 Guaranteed Pod , 会固定配置默认的 -998 的 OOMScore;而 Burstable Pod 会根据 Pod 内存设计的大小和节点内存的比例来分配 2-999 的 OOMScore;BestEffort Pod 会固定分配 1000 的 OOMScore , OOMScore 得分越高的话 , 在物理机出现 OOM 的时候会优先被 kill 掉 。

推荐阅读