GKE Autopilot集群CPU占比82%仍触发缩容的原因咨询
针对GKE Autopilot集群中CPU占比(cpuRatio)达82%的节点仍触发缩容的现象,结合Cluster Autoscaler核心逻辑与Autopilot的特性,主要有以下几种可能原因:
1. 缩容判断依据是Pod资源请求,而非实际使用率
Cluster Autoscaler(包括GKE Autopilot适配的版本)判断节点是否可缩容时,参考的是Pod声明的resources.requests.cpu总和占节点可分配资源的比例,这也是官方FAQ中“利用率低于50%”的真实定义(指请求资源占比)。
你提到的“两个副本总占用3000m”如果是节点的实际CPU使用量,而非Pod的资源请求总和,那么实际请求的资源占比可能远低于50%,满足缩容触发条件。日志中的cpuRatio字段显示的82%,大概率是节点的实际使用率,但Autoscaler不会以此作为缩容判断的核心指标。
2. 节点存在调度约束,不再承接新Pod
如果该节点被打上了NoSchedule污点、标签配置被修改,或者集群调度策略调整,导致未来不会有任何Pod被调度到该节点,即使当前利用率较高,Autoscaler也会将其标记为可移除——因为它已经不再为集群提供有效资源支撑。
3. Pod可被安全驱逐,集群有冗余资源承接
若这两个Pod未配置PodDisruptionBudget(PDB),或者属于低优先级Pod,并且集群内其他节点有足够空闲资源承接被驱逐的Pod,Autoscaler会判定该节点可安全移除,即使当前节点的使用率看起来很高。
4. Autopilot的节点优化自动触发缩容
GKE Autopilot会自动优化集群节点配置,比如替换与工作负载需求不匹配的实例类型、调整节点池结构以适配整体负载。如果该节点的实例类型不符合当前集群的资源需求,Autopilot会触发节点替换流程:先将Pod驱逐到其他合适节点,再缩容该节点。
内容的提问来源于stack exchange,提问作者Dawid Janczak

