コンシューマー グループのラグに基づいてカフカ コンシューマーをスケーリングするために、Kubernetes 水平ポッド オートスケーラーを実行しています。HPA yaml ファイルを以下に示します。
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: kafka-consumer-application
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: kafka-consumer-application
minReplicas: 1
maxReplicas: 10
metrics:
- type: External
external:
metric:
name: kafka_consumergroup_lag
target:
type: AverageValue
averageValue:5
HPA が厳密には式ceil(currentReplicas * currentMetricValue/desiredMetricValue )に従っていないレプリカをスケーリングしていることに気付きました。
たとえば、メトリクス (コンシューマー ラグ) が 108 で、レプリカが 1 つしかない場合、Kubernetes は 4 つのレプリカのみをスケールアップしました (下のスクリーン ショットに示すように) が、理論的には 10 にスケールアップする必要があります (最大許容レプリカ数)...
理由について何か考えはありますか?HPA調整ループの1回の反復ごとにスケーリング/複製できるレプリカの最大数など、何か不足していますか?
スクリーンショットの「ScalingLimited True ScaleUpLimit 必要なレプリカ数が最大スケール レートよりも速く増加しています」というメッセージに注意してください。これはどういう意味ですか?
ありがとう。