You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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里。比如需要补充类似这样的配置:
    spec:
      disruption:
        consolidationPolicy: WhenEmptyOrUnderutilized
        schedule: "0 1 * * *" # UTC时间每天凌晨1点执行合并
        expireAfter: 720h
    
    如果没加这部分,Karpenter会使用默认合并策略,不受时间限制。
  • 检查cron表达式的时区:Karpenter默认用UTC时间,要是你写的是本地时区的时间,就会导致合并时间和预期不符。
  • 排查是否有其他触发合并的场景:比如节点出现健康问题、被标记为不可调度、或者存在强制驱逐的污点,这些情况会绕过schedule直接触发consolidation。
  • 查看Karpenter日志:执行kubectl logs -n karpenter deployment/karpenter查看日志,搜索disruption相关条目,确认配置是否生效,有没有报错信息。

备注:内容来源于stack exchange,提问作者Akshay Rathi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 08:32:59