本文分享自华为云社区《华为云CCE集群增强型CPU管理策略enhanced-static》,作者: 可以交个朋友。
背景
开源Kubernetes默认提供的CPU管理策略有none和static两种:
- none: 不开启CPU管理策略,默认值。
- static:开启静态绑核的CPU管理策略,允许为节点上具有某些资源特征的 Pod(Guaranteed pod)赋予CPU亲和性和独占性。
华为云cce集群提供增强型CPU管理策略(enhanced-static),兼容静态绑核CPU管理策略的基础上,新增一种符合某些资源特征的Burstable Pod(要求CPU的requests和limits参数值都是正整数)优先使用某些CPU的能力,以减少应用在多个CPU间频繁切换带来的影响。该特性是基于Huawei Cloud EulerOS 2.0内核中优化了CPU调度能力实现的。在Pod容器优先使用的CPU利用率超过85%时,会自动分配到其他利用率较低的CPU上,进而保障了应用的响应能力。
约束与限制
使用该特性,需同时满足以下条件:
- 集群版本为v1.23及以上。
- 节点操作系统为Huawei Cloud EulerOS 2.0。
- 弹性云服务器。物理机节点不支持使用CPU管理策略。
操作演示
未开启增强型CPU管理策略
创建节点池,规格选择8C/16G。
创建工作负载
kind: Deployment
apiVersion: apps/v1
metadata:
name: enhanced-static
spec:
replicas: 1
selector:
matchLabels:
app: enhanced-static
template:
metadata:
labels:
app: enhanced-static
spec:
containers:
- name: container-1
image: swr.cn-north-4.myhuaweicloud.com/testapp/centos-stress:v1
command:
- /bin/bash
args:
- '-c'
- while true; do echo hello; sleep 10; done
resources:
limits:
cpu: '4'
memory: 2Gi
requests:
cpu: '3'
memory: 2Gi
进入容器内使用命令压测cpu资源,并在grafana页面观察192.168.0.114节点每个核心的使用率
stress-ng -c 4 -t 3600
开启增强型CPU管理策略
点击节点池的配置管理-kubelet组件配置-CPU管理策略配置-选择enhanced-static
步骤 5 登录到节点上查看优先核绑定详情,查看路径:/var/lib/kubelet/cpu_manager_state;修改配置后该文件会自动删除重建
0-7:表示节点上所有核心
10001-10003:表示优先核编号,优先核为cpu1、cpu2、cpu3
进入容器内使用命令压测cpu资源,并在grafana页面观察192.168.0.114节点每个核心的使用率
stress-ng -c 4 -t 3600