kubernetes worker节点的资源视图可以参考下图:
1.17版本之后,可以通过reservedSystemCPUs显式预留资源,就目前查到的资料显示:
- reservedSystemCPUs可以覆盖kubeReserved、systemReserved预留的范围,也可以不覆盖,一般用于实时性要求高的场景
- kubeReserved、systemReserved预留的CPU按照物理核心ID升序进行预留
在k8s中,可以通过以下配置来控制kubernetes worker节点的资源预留:
分类 | 配置项 | 说明 | 示例 |
---|---|---|---|
分类 | 配置项 | 说明 | 示例 |
策略 | enforceNodeAllocatable | 此标志设置 kubelet 需要执行的各类节点可分配资源策略 | 可接受的选项有 none 、pods 、system-reserved 和 kube-reserved |
kubernetes组件预留 |
kubeReservedCgroup |
||
kubeReserved |
|||
系统预留 |
systemReservedCgroup |
||
systemReserved |
|||
显式预留 |
reservedSystemCPUs |
||
驱逐 |
evictionHard |
硬性驱逐阈值 |
{memory.available: "100Mi", nodefs.available: "10%", nodefs.inodesFree: "5%", imagefs.available: "15%"} |
evictionSoft |
软性驱逐阈值 |
{memory.available: "100Mi"} |
|
evictionSoftGracePeriod |
软性驱逐的宽限期限 |
{"memory.available": "30s"} |
|
evictionPressureTransitionPeriod |
kubelet 离开驱逐压力状况之前必须要等待的时长 |
默认值:"5m" |
|
evictionMaxPodGracePeriod |
达到软性逐出阈值而引起 Pod 终止时, 可以赋予的宽限期限最大值(按秒计) |
|
|
evictionMinimumReclaim |
资源压力较大而执行 Pod 驱逐操作时,kubelet 对给定资源的最小回收量 |
{"imagefs.available": "2Gi"} |