Karpenter v0.34.0节点合并在非计划时间触发问题求助
Karpenter v0.34.0节点合并在非计划时间触发问题求助
嘿,我刚把Karpenter升级到v0.34.0,这个版本新增了节点合并的调度功能,本来想把节点consolidation限定在特定时间段执行,结果配置完Disruption Policy之后,Karpenter还是在非计划时间合并节点,这可愁死我了。
下面是我正在使用的NodePool配置代码(部分内容截断):
apiVersion: karpenter.sh/v1beta1 kind: NodePool metadata: name: application spec: template: metadata: labels: provisioner: karpenter nodegroup: application usage: application spec: nodeClassRef: apiVersion: karpenter.k8s.aws/v1beta1 kind: EC2NodeClass name: default requirements: - key: "karpenter.k8s.aws/instance-category" operator: In values: ["c", "m", "r"] taints: - key: usage value: application effect: NoSchedule
我怀疑是不是配置里漏了关键部分?有没有大佬能帮忙看看哪里需要调整?
自己梳理的几个排查方向,供参考:
- 先确认Disruption Policy配置是否完整:v0.34.0的NodePool中,
disruption字段是直接放在spec层级下的,不是嵌套在template.spec里。比如需要补充类似这样的配置:
如果没加这部分,Karpenter会使用默认合并策略,不受时间限制。spec: disruption: consolidationPolicy: WhenEmptyOrUnderutilized schedule: "0 1 * * *" # UTC时间每天凌晨1点执行合并 expireAfter: 720h - 检查cron表达式的时区:Karpenter默认用UTC时间,要是你写的是本地时区的时间,就会导致合并时间和预期不符。
- 排查是否有其他触发合并的场景:比如节点出现健康问题、被标记为不可调度、或者存在强制驱逐的污点,这些情况会绕过schedule直接触发consolidation。
- 查看Karpenter日志:执行
kubectl logs -n karpenter deployment/karpenter查看日志,搜索disruption相关条目,确认配置是否生效,有没有报错信息。
备注:内容来源于stack exchange,提问作者Akshay Rathi
相关产品推荐
相关产品推荐

