最近我将 Karpenter 版本升级到 v0.34.0,并且伴随着中断功能,我们可以将节点整合安排到特定时间。我已经添加了中断策略,但即使在那之后,卡彭特仍在计划外的时间整合节点。
下面是我正在使用的代码。代码中有什么需要修复的吗
*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
%{ if var.consolidation_enabled }
disruption:
consolidationPolicy: WhenUnderutilized
budgets:
- nodes: "1"
schedule: "05 7 * * *" # Schedule for 5:40 AM EST
duration: 30m
%{ endif }
limits:
cpu: 600*
预计节点合并应该在预定时间进行,即“05 7 * * *”,但它也在非预定时间进行合并。
您可以尝试添加额外的预算,以允许随时出现 0 个节点中断。 喜欢:
disruption:
consolidationPolicy: WhenUnderutilized
budgets:
- nodes: "0"
- nodes: "1"
schedule: "05 7 * * *" # Schedule for 5:40 AM EST
duration: 30m
这意味着,它永远不会破坏计划之外的节点。