プレーンな HPA を使用すると、基盤となるデプロイメントを手動でゼロにスケーリングできます。これは、たとえば次の場合に必要です。保守作業。ゼロより大きい値にスケールバックすると、スケーリングは以前と同様に続行されます。これは実行されたコマンドです:kubectl scale deployment my-deployment --replicas=0
ただし、KEDA では、これは不可能です。ドキュメントの唯一の場所は次のとおりです。
KEDA はその値を強制しません。つまり、デプロイを手動で 0 にスケーリングしても、KEDA はそれをスケールアップしません。ただし、KEDA 自体が展開をスケーリングしている場合は、そこに設定された値が尊重されます。
この動作を確認できず、以前のスケーリング コマンドも機能しません。and を手動で 0 に変更するminReplicas
とmaxReplicas
、keda ログに多くのエラーがスローされます。デプロイメントを偽の値にポイントすると、同じことが起こります。
一時的にゼロにスケーリングする方法が必要です (ScaledObject の削除はもちろん機能しますが、それらをどこかに保存する必要があり、これもエラーが発生しやすく、直感に反します)。これは、 の値とは無関係に機能するはずですminReplicaCount
。
Kubernetes 1.15、ケダ 1.5.0 を使用。ScaledObject の例:
apiVersion: keda.k8s.io/v1alpha1
kind: ScaledObject
metadata: ... # left out
spec:
cooldownPeriod: 600
maxReplicaCount: 8
minReplicaCount: 0
pollingInterval: 30
scaleTargetRef:
containerName: main
deploymentName: my-deployment
scaleType: deployment
triggers:
- type: kafka
... # left out
status:
externalMetricNames:
- lagThreshold
lastActiveTime: "2020-07-21T11:32:31Z"