KEDA是否会基于ScaledObject阈值直接扩容至最大副本数?
KEDA HTTP触发器副本数扩容规则问题
问题描述
我有一个指标服务器,通过简单的REST API端点返回count值。当前的ScaledObject配置如下:
minReplicaCount: 1 maxReplicaCount: 10 pollingInterval: 90 cooldownPeriod: 120 triggers: - type: http metadata: valuePath: $.count threshold: 1000
我想知道:当count达到阈值1000时,KEDA会不会直接把副本数扩容到10个?我担心每次触发器返回count>=1000时,副本数会在1和10之间来回切换。我的期望是每1000个count对应1个副本,最多扩容到10个。
回答
- 你当前的配置确实会在
count达到阈值后直接扩容到10个副本——因为默认的HTTP触发器采用开关式逻辑:只要指标超过阈值,就拉满到maxReplicaCount,低于阈值则缩容到最小。这正是你担心的“在1和10之间跳变”的情况。 - 要实现“每1000个count对应1个副本”的线性扩容,你需要给触发器添加
targetValue参数,修改后的配置如下:
minReplicaCount: 1 maxReplicaCount: 10 pollingInterval: 90 cooldownPeriod: 120 triggers: - type: http metadata: valuePath: $.count targetValue: "1000" # 设定每个副本需要承载的count量 threshold: "1000" # 可选:当count低于这个值时,保持最小副本数
- 计算逻辑:KEDA会用
ceil(count / targetValue)得出所需副本数,同时被minReplicaCount和maxReplicaCount限制。比如:- count=2300 → 3个副本(2300/1000=2.3,向上取整为3)
- count=10500 → 10个副本(达到最大值,不再扩容)
- count=800 → 1个副本(低于阈值,保持最小)
内容的提问来源于stack exchange,提问作者xploreraj
相关产品推荐
相关产品推荐

