本文分享自華為雲社群《華為雲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
點選關注,第一時間瞭解華為雲新鮮技術~