0

私の要件は、キューからの保留中のメッセージなどのカスタム メトリックで PODS をスケールアップすることです。ジョブを処理するためにポッドを増やす必要があります。kubernetes では、prometheus アダプターと prometheus オペレーターを使用してスケールアップが正常に機能しています。

ポッドで長時間実行されているプロセスがありますが、HPA はカスタム メトリックをチェックし、スケールダウンを試みます。このプロセスにより、操作の途中で強制終了し、そのメッセージが失われます。HPA を制御して、プロセスが実行されていない空きポッドのみを強制終了する方法を教えてください。

カスタム メトリックを収集するための AdapterService

  • seriesQuery: '{namespace="default",service="hpatest-service"}' リソース: オーバーライド: 名前空間: リソース: "名前空間" サービス: リソース: "サービス" 名前: 一致: "msg_consumergroup_lag" metricsQuery: 'avg_over_time(msg_consumergroup_lag {topic="test",consumergroup="test"}[1m])'

HPA 構成

  • タイプ: オブジェクト オブジェクト: 説明オブジェクト: 種類: サービス名: custommetric-service メトリック: 名前: msg_consumergroup_lag ターゲット: タイプ: 値 値: 2
4

4 に答える 4

0

ここで提案とアイデアを示します。スケールアップしたらすぐにカスタムスクリプトを実行して HPA を無効にすることができます。スクリプトはリソースとプロセスをチェックし続け、プロセスがない場合は HPA を有効にしてスケールダウンするか、kubectl コマンドを使用してポッドを強制終了します。 HPA バックを有効にします。

于 2021-05-08T11:44:56.157 に答える