本文分享自華爲雲社區《華爲雲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