ack-koordinator在宿主機節點提供了彈性資源限制能力,確保低優先級BE(BestEffort)類型Pod的CPU資源使用在合理范圍內,保障節點內容器穩定運行。本文主要介紹如何通過ack-koordinator使用彈性資源限制能力。
背景信息
在ack-koordinator提供的動態資源超賣模型中,Reclaimed資源總量根據高優先級LS(Latency Sensitive)類型Pod的實際資源用量而動態變化,這部分資源可以供低優先級BE(BestEffort)類型Pod使用。通過動態資源超賣能力,可以將LS與BE類型容器混合部署,以此提升集群資源利用率。為了確保BE類型Pod的CPU資源使用在合理范圍內,避免LS類型應用的運行質量受到干擾,ack-koordinator在節點側提供了CPU資源彈性限制的能力。彈性資源限制功能可以幫您在整機資源用量安全水位下,控制BE類型Pod可使用的CPU資源量,保障節點內容器穩定運行。
如下圖所示,在整機安全水位下(CPU Threshold),隨著LS類型Pod資源使用量的變化(Pod(LS).Usage),BE類型Pod可用的CPU資源被限制在合理的范圍內(CPU Restriction for BE)。限制水位的配置與動態資源超賣模型中的預留水位基本一致,以此保證CPU資源使用的一致性。
前提條件
已安裝ack-koordinator組件,且版本≥0.4.0。關于安裝ack-koordinator的具體操作,請參見ack-koordinator(ack-slo-manager)。
費用說明
ack-koordinator組件本身的安裝和使用是免費的,不過需要注意的是,在以下場景中可能產生額外的費用:
ack-koordinator是非托管組件,安裝后將占用Worker節點資源。您可以在安裝組件時配置各模塊的資源申請量。
ack-koordinator默認會將資源畫像、精細化調度等功能的監控指標以Prometheus的格式對外透出。若您配置組件時開啟了ACK-Koordinator開啟Prometheus監控指標選項并使用了阿里云Prometheus服務,這些指標將被視為自定義指標并產生相應費用。具體費用取決于您的集群規模和應用數量等因素。建議您在啟用此功能前,仔細閱讀阿里云Prometheus計費說明,了解自定義指標的免費額度和收費策略。您可以通過賬單和用量查詢,監控和管理您的資源使用情況。
操作步驟
使用以下ConfigMap,創建configmap.yaml文件。
apiVersion: v1 kind: ConfigMap metadata: name: ack-slo-config namespace: kube-system data: #開啟彈性資源限制能力。 resource-threshold-config: | { "clusterStrategy": { "enable": true } }
查看命名空間
kube-system
下是否存在ConfigMapack-slo-config
。若存在ConfigMap
ack-slo-config
,請使用PATCH方式進行更新,避免干擾ConfigMap中其他配置項。kubectl patch cm -n kube-system ack-slo-config --patch "$(cat configmap.yaml)"
若不存在ConfigMap
ack-slo-config
,請執行以下命令部署ConfigMap。kubectl apply -f configmap.yaml
執行以下命令,查看當前BE分組對應的CPU核心綁定情況。
cat /sys/fs/cgroup/cpuset/kubepods.slice/kubepods-besteffort.slice/cpuset.cpus
預期輸出:
10-25,35-51,62-77,87-103
由預期輸出得到,CPU的綁定范圍為
10-25,35-51,62-77,87-103
。可選:使用以下ConfigMap,配置高級參數。
CPU彈性資源限制的安全水位支持精細化配置。
apiVersion: v1 kind: ConfigMap metadata: name: ack-slo-config namespace: kube-system data: resource-threshold-config: | { "clusterStrategy": { "enable": true, "cpuSuppressThresholdPercent": 65 } }
關鍵參數說明如下:
參數
類型
取值范圍
說明
enable
Boolean
true
false
true
:表示集群開啟彈性資源限制能力。false
:表示集群關閉彈性資源限制能力。
cpuSuppressThresholdPercent
Int
0~100
單位為百分比,表示彈性資源限制對應的節點安全水位閾值,默認為
65
。