带你熟悉CCE集群增强型CPU管理策略enhanced-static
本文分享自华为云社区《华为云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