Report
We have a situation where Kafka scaler reports -2 and the HPA scale to the maxReplicas.
A CPU scaler is also defined but it reports 1% usage so the desired replicas count should be 1 not 3.
The following information comes from a kubectl describe on the HPA
Name: keda-hpa-vcstream-out-listener-kafka-geco
Namespace: vcstream-dev
Labels: app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=keda-hpa-vcstream-out-listener-kafka-geco
app.kubernetes.io/part-of=vcstream-out-listener-kafka-geco
app.kubernetes.io/version=2.5.0
scaledobject.keda.sh/name=vcstream-out-listener-kafka-geco
Annotations: <none>
CreationTimestamp: Tue, 08 Feb 2022 17:09:07 +0100
Reference: Deployment/vcstream-out-listener-kafka-geco
Metrics: ( current / target )
"s1-kafka-private_dkt_out_listener_kafka_geco_v1" (target average value): -2 / 500
resource cpu on pods (as a percentage of request): 1% (3m) / 75%
Min replicas: 1
Max replicas: 3
Deployment pods: 3 current / 3 desired
Conditions:
Type Status Reason Message
---- ------ ------ -------
AbleToScale True ScaleDownStabilized recent recommendations were higher than current one, applying the highest recent recommendation
ScalingActive True ValidMetricFound the HPA was able to successfully calculate a replica count from cpu resource utilization (percentage of request)
ScalingLimited False DesiredWithinRange the desired count is within the acceptable range
Other scalers defined the same way and connected to the same Kafka broker works as expected.
Expected Behavior
As there is no lag and no CPU, HPA need to scale to the minReplicas wich is 1.
Actual Behavior
HPA scale to maxReplicas wich is 3.
Steps to Reproduce the Problem
Here is the sclaled objet definition we use:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: vcstream-out-listener-kafka-geco
spec:
scaleTargetRef:
name: vcstream-out-listener-kafka-geco
minReplicaCount: 1
maxReplicaCount: 3
cooldownPeriod: 60
fallback:
failureThreshold: 3
replicas: 1
advanced:
restoreToOriginalReplicaCount: true
triggers:
- type: cpu
metadata:
type: Utilization
value: "75"
- type: kafka
metadata:
bootstrapServers: "redacted"
consumerGroup: vcstream-out-listener-kafka-geco
topic: private_dkt_out_listener_kafka_geco_v1
lagThreshold: "500"
offsetResetPolicy: latest
authenticationRef:
name: keda-trigger-auth-kafka-credential
Logs from KEDA operator
KEDA Version
No response
Kubernetes Version
No response
Platform
Google Cloud
Scaler Details
cpu, kafka
Anything else?
Maybe the issue is that the lag is not reported and Keda returns -2 instead of 0 when there is no lag ?
Report
We have a situation where Kafka scaler reports -2 and the HPA scale to the maxReplicas.
A CPU scaler is also defined but it reports 1% usage so the desired replicas count should be 1 not 3.
The following information comes from a kubectl describe on the HPA
Other scalers defined the same way and connected to the same Kafka broker works as expected.
Expected Behavior
As there is no lag and no CPU, HPA need to scale to the minReplicas wich is 1.
Actual Behavior
HPA scale to maxReplicas wich is 3.
Steps to Reproduce the Problem
Here is the sclaled objet definition we use:
Logs from KEDA operator
KEDA Version
No response
Kubernetes Version
No response
Platform
Google Cloud
Scaler Details
cpu, kafka
Anything else?
Maybe the issue is that the lag is not reported and Keda returns -2 instead of 0 when there is no lag ?