This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.3.10. カスタムメトリクスオートスケーラーの追加方法について
カスタムメトリックオートスケーラーを追加するには、デプロイメント、ステートフルセット、またはカスタムリソース用の ScaledObject
カスタムリソースを作成します。ジョブの ScaledJob
カスタムリソースを作成します。
スケーリングするワークロードごとに、スケーリングされたオブジェクトを 1 つだけ作成できます。スケーリングされたオブジェクトと水平 Pod オートスケーラー (HPA) は、同じワークロードで使用できません。
3.10.1. ワークロードへのカスタムメトリックオートスケーラーの追加 リンクのコピーリンクがクリップボードにコピーされました!
Deployment
、StatefulSet
、または custom resource
オブジェクトによって作成されるワークロード用のカスタムメトリクスオートスケーラーを作成できます。
前提条件
- Custom Metrics Autoscaler Operator をインストールしている必要がある。
CPU またはメモリーに基づくスケーリングにカスタムメトリクスオートスケーラーを使用する場合:
クラスター管理者は、クラスターメトリクスを適切に設定する必要があります。メトリックが設定されているかどうかは、
oc describe PodMetrics <pod-name>
コマンドを使用して判断できます。メトリクスが設定されている場合、出力は以下の Usage の下にある CPU と Memory のように表示されます。oc describe PodMetrics openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
$ oc describe PodMetrics openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スケーリングするオブジェクトに関連付けられた Pod には、指定されたメモリーと CPU の制限が含まれている必要があります。以下に例を示します。
Pod 仕様の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
以下のような YAML ファイルを作成します。名前
<2>
、オブジェクト名<4>
、およびオブジェクトの種類<5>
のみが必要です。スケーリングされたオブジェクトの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- オプション: 「ワークロードのカスタムメトリクスオートスケーラーの一時停止」セクションで説明されているように、Custom Metrics Autoscaler Operator がレプリカを指定された値にスケーリングし、自動スケーリングを停止するよう指定します。
- 2
- このカスタムメトリクスオートスケーラーの名前を指定します。
- 3
- オプション: ターゲットリソースの API バージョンを指定します。デフォルトは
apps/v1
です。 - 4
- スケーリングするオブジェクトの名前を指定します。
- 5
kind
をDeployment
、StatefulSet
またはCustomResource
として指定します。- 6
- オプション: カスタムメトリクスオートスケーラーがシークレットなどを保持する環境変数を取得する、ターゲットリソース内のコンテナーの名前を指定します。デフォルトは
.spec.template.spec.containers[0]
です。 - 7
- オプション:
minReplicaCount
が0
に設定されている場合、最後のトリガーが報告されてからデプロイメントを0
にスケールバックするまでの待機時間を秒単位で指定します。デフォルトは300
です。 - 8
- オプション: スケールアップ時のレプリカの最大数を指定します。デフォルトは
100
です。 - 9
- オプション: スケールダウン時のレプリカの最小数を指定します。
- 10
- オプション: 「監査ログの設定」セクションで説明されているように、監査ログのパラメーターを指定します。
- 11
- オプション:
failureThreshold
パラメーターで定義された回数だけスケーラーがソースからメトリクスを取得できなかった場合に、フォールバックするレプリカの数を指定します。フォールバック動作の詳細は、KEDA のドキュメント を参照してください。 - 12
- オプション: 各トリガーをチェックする間隔を秒単位で指定します。デフォルトは
30
です。 - 13
- オプション: スケーリングされたオブジェクトが削除された後に、ターゲットリソースを元のレプリカ数にスケールバックするかどうかを指定します。デフォルトは
false
で、スケーリングされたオブジェクトが削除されたときのレプリカ数をそのまま保持します。 - 14
- オプション: Horizontal Pod Autoscaler の名前を指定します。デフォルトは
keda-hpa-{scaled-object-name}
です。 - 15
- オプション: 「スケーリングポリシー」セクションで説明されているように、Pod をスケールアップまたはスケールダウンするレートを制御するために使用するスケーリングポリシーを指定します。
- 16
- カスタムメトリックオートスケーラートリガーについてのセクションで説明されているように、スケーリングの基礎として使用するトリガーを指定します。この例では、OpenShift Container Platform モニタリングを使用します。
- 17
- オプション: カスタムメトリックオートスケーラートリガー認証の作成のセクションで説明されているように、トリガー認証を指定します。
- 18
- オプション: カスタムメトリックオートスケーラートリガー認証の作成のセクションで説明されているように、クラスタートリガー認証を指定します。
注記namespace トリガー認証とクラスタートリガー認証の両方を指定する必要はありません。
カスタムメトリックオートスケーラーを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
コマンド出力を表示して、カスタムメトリックオートスケーラーが作成されたことを確認します。
oc get scaledobject <scaled_object_name>
$ oc get scaledobject <scaled_object_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME SCALETARGETKIND SCALETARGETNAME MIN MAX TRIGGERS AUTHENTICATION READY ACTIVE FALLBACK AGE scaledobject apps/v1.Deployment example-deployment 0 50 prometheus prom-triggerauthentication True True True 17s
NAME SCALETARGETKIND SCALETARGETNAME MIN MAX TRIGGERS AUTHENTICATION READY ACTIVE FALLBACK AGE scaledobject apps/v1.Deployment example-deployment 0 50 prometheus prom-triggerauthentication True True True 17s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力の次のフィールドに注意してください。
-
TRIGGERS
: 使用されているトリガーまたはスケーラーを示します。 -
AUTHENTICATION
: 使用されているトリガー認証の名前を示します。 READY
: スケーリングされたオブジェクトがスケーリングを開始する準備ができているかどうかを示します。-
True
の場合、スケーリングされたオブジェクトの準備は完了しています。 -
False
の場合、作成したオブジェクトの 1 つ以上に問題があるため、スケーリングされたオブジェクトの準備は完了していません。
-
ACTIVE
: スケーリングが行われているかどうかを示します。-
True
の場合、スケーリングが行われています。 -
False
の場合、メトリックがないか、作成したオブジェクトの 1 つ以上に問題があるため、スケーリングは行われていません。
-
FALLBACK
: カスタムメトリックオートスケーラーがソースからメトリックを取得できるかどうかを示します。-
False
の場合、カスタムメトリックオートスケーラーはメトリックを取得しています。 -
True
の場合、メトリクスがないか、作成したオブジェクトの 1 つ以上に問題があるため、カスタムメトリクスオートスケーラーはメトリクスを取得しています。
-
-
3.10.2. ジョブへのカスタムメトリックオートスケーラーの追加 リンクのコピーリンクがクリップボードにコピーされました!
任意の Job
オブジェクトに対してカスタムメトリックオートスケーラーを作成できます。
スケーリングされたジョブを使用したスケーリングはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
- Custom Metrics Autoscaler Operator をインストールしている必要がある。
手順
以下のような YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ジョブを実行できる最大期間を指定します。
- 2
- ジョブの再試行回数を指定します。デフォルト値は
6
です。 - 3
- オプション: ジョブを並行して実行する Pod レプリカの数を指定します。デフォルトは
1
です。-
非並列ジョブの場合は、未設定のままにします。設定されていない場合、デフォルトは
1
になります。
-
非並列ジョブの場合は、未設定のままにします。設定されていない場合、デフォルトは
- 4
- オプション: ジョブを完了したとマークするために必要な、正常に完了した Pod 数を指定します。
-
非並列ジョブの場合は、未設定のままにします。設定されていない場合、デフォルトは
1
になります。 - 固定の完了数を持つ並列ジョブの場合、完了の数を指定します。
-
ワークキューのある並列ジョブでは、未設定のままにします。設定されていない場合、デフォルトは
parallelism
パラメーターの値になります。
-
非並列ジョブの場合は、未設定のままにします。設定されていない場合、デフォルトは
- 5
- コントローラーが作成する Pod のテンプレートを指定します。
- 6
- オプション: スケールアップ時のレプリカの最大数を指定します。デフォルトは
100
です。 - 7
- オプション: 各トリガーをチェックする間隔を秒単位で指定します。デフォルトは
30
です。 - 8
- オプション: 保持する必要がある正常に終了したジョブの数を指定します。デフォルトは
100
です。 - 9
- オプション: 保持する必要がある失敗したジョブの数を指定します。デフォルトは
100
です。 - 10
- オプション: カスタムオートスケーラーがシークレットなどを保持する環境変数を取得するターゲットリソース内のコンテナーの名前を指定します。デフォルトは
.spec.template.spec.containers[0]
です。 - 11
- オプション: スケーリングされたジョブが更新されるたびに、既存のジョブを終了するかどうかを指定します。
-
default
: 関連するスケーリングされたジョブが更新されると、オートスケーラーは既存のジョブを終了します。オートスケーラーは、最新の仕様でジョブを再作成します。 -
gradual
: 関連するスケーリングされたジョブが更新された場合、オートスケーラーは既存のジョブを終了しません。オートスケーラーは、最新の仕様で新しいジョブを作成します。
-
- 12
- オプション: スケーリングストラテジーを指定します:
default
、custom
、またはaccurate
。デフォルトはdefault
です。詳細については、以下の関連情報セクションのリンクを参照してください。 - 13
- カスタムメトリックオートスケーラートリガーについてのセクションで説明されているように、スケーリングの基礎として使用するトリガーを指定します。
- 14
- オプション: カスタムメトリックオートスケーラートリガー認証の作成のセクションで説明されているように、トリガー認証を指定します。
- 15
- オプション: カスタムメトリックオートスケーラートリガー認証の作成のセクションで説明されているように、クラスタートリガー認証を指定します。注記
namespace トリガー認証とクラスタートリガー認証の両方を指定する必要はありません。
カスタムメトリックオートスケーラーを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
コマンド出力を表示して、カスタムメトリックオートスケーラーが作成されたことを確認します。
oc get scaledjob <scaled_job_name>
$ oc get scaledjob <scaled_job_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME MAX TRIGGERS AUTHENTICATION READY ACTIVE AGE scaledjob 100 prometheus prom-triggerauthentication True True 8s
NAME MAX TRIGGERS AUTHENTICATION READY ACTIVE AGE scaledjob 100 prometheus prom-triggerauthentication True True 8s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力の次のフィールドに注意してください。
-
TRIGGERS
: 使用されているトリガーまたはスケーラーを示します。 -
AUTHENTICATION
: 使用されているトリガー認証の名前を示します。 READY
: スケーリングされたオブジェクトがスケーリングを開始する準備ができているかどうかを示します。-
True
の場合、スケーリングされたオブジェクトの準備は完了しています。 -
False
の場合、作成したオブジェクトの 1 つ以上に問題があるため、スケーリングされたオブジェクトの準備は完了していません。
-
ACTIVE
: スケーリングが行われているかどうかを示します。-
True
の場合、スケーリングが行われています。 -
False
の場合、メトリックがないか、作成したオブジェクトの 1 つ以上に問題があるため、スケーリングは行われていません。
-
-