自動スケーラー プロファイルを使用して、Arc で有効になっている AKS でクラスターの自動スケールを構成する
適用対象: AKS on Azure Stack HCI 22H2、Windows Server 上の AKS
自動スケーラー プロファイル オブジェクトのパラメーターを使用して、Arc で有効になっている AKS のスケール イベントを定義できます。クラスター オートスケーラー プロファイルは、クラスター オートスケーラーを使用するすべてのノード プールに影響します。ノード プールごとに自動スケーラー プロファイルを設定することはできません。 この記事では、オートスケーラーのしくみ、既定の自動スケーラー プロファイル値、およびプロファイル定義を構成して使用する方法について説明します。
プロファイルの使用
クラスター オートスケーラー プロファイルには、次の属性があります。
- 自動スケーラー プロファイルは、クラスター内のすべてのノード プールに適用されます。
- プロファイルは、グローバル展開レベルのオブジェクトです。
- AKS Arc では複数のプロファイルを使用できます。
- 特定のクラスターに割り当てられるプロファイルは 1 つだけです。 そのプロファイルが、クラスター内のすべてのノード プールに使われます。
- プロファイルへの変更は、オートスケーラー機能が有効になっているすべてのノード プールに適用されます。
プロファイルの設定
既定のプロファイルは、以下の既定値で構成されます。 次の設定を更新できます。
設定 | Description | 規定値 |
---|---|---|
min-node-count |
このプロファイルが割り当てられているノード プールがスケールダウンできる最小ノード数。 | 0 |
max-node-count |
このプロファイルが割り当てられているノード プールがスケールアップできる最大ノード数。 | 1 |
scan-interval |
スケールアップまたはスケールダウンに関してクラスターが再評価される頻度。 | 10 秒 |
scale-down-delay-after-add |
スケールアップ後に、スケールダウンの評価が再開されるまでの時間。 | 10 分 |
scale-down-delay-after-delete |
ノードの削除後に、スケールダウンの評価が再開されるまでの時間。 | scan-interval |
scale-down-delay-after-failure |
スケール ダウンの失敗後にスケール ダウン評価が再開される期間。 | 3 分 |
scale-down-unneeded-time |
ノードが不要になってからスケールダウンの対象になるまでの時間。 | 10 分 |
scale-down-unready-time |
準備ができていないノードが不要になってからスケールダウンの対象になるまでの時間。 | 20 分 |
scale-down-utilization-threshold |
ノード使用率レベル。要求されたリソースの合計を容量で割った値として定義され、その下にノードをスケール ダウンと見なすことができます。 | 0.5 |
max-graceful-termination-sec |
ノードのスケールダウンを試みるときに、クラスター オートスケーラーがポッドの終了を待機する最大秒数。 | 600 秒 |
balance-similar-node-groups |
類似のノード プールを検出し、その間でノード数のバランスを取ります。 | false |
expander |
スケールアップで使用するノード プール expander の種類 使用可能な値: most-pods 、 random 、 least-waste 、 priority 。 |
random |
skip-nodes-with-local-storage |
真の場合、クラスター オートスケーラーは、ローカル ストレージを持つポッドを持つノード (EmptyDir や HostPath など) を削除しません。 | true |
skip-nodes-with-system-pods |
true場合、クラスター オートスケーラーはポッドを持つノードをkube-system から削除することはありません (DaemonSet ポッドまたはミラー ポッドを除く)。 |
true |
max-empty-bulk-delete |
同時に削除できる空ノードの最大数。 | 10 |
new-pod-scale-up-delay |
Kubernetes スケジューラですべてのポッドをスケジュールする前に CA を動作させたくないバースト/バッチ スケールなどのシナリオでは、スケジュールされていないポッドが特定の期間になるまでは無視するように CA に指示できます。 | 0 秒 |
max-total-unready-percentage |
クラスター内の準備が完了していないノードの最大割合。 この割合を超えると、CA の動作は停止されます。 | 45% |
max-node-provision-time |
自動スケーラーがノードがプロビジョニングされるのを待機する最大時間。 | 15 分 |
オートスケーラーの構成に関する注意事項
クラスター オートスケーラー プロファイルの設定は、 Set-AksHciAutoScalerConfig PowerShell コマンドレットを使用して変更できます。
クラスター自動スケーラーでは、各ノード プールに設定された最小数と最大数に基づいてスケーリングが決定されますが、最小数または最大数が更新された後にそれが適用されません。 たとえば、現在のノード数が 3 の場合に最小カウントを 5 に設定しても、プールはすぐに 5 までスケーリングされません。
ノード プールの最小数が現在のノード数より大きい値である場合、2 つの新しい追加ノードを必要とし、自動スケーラー イベントをトリガーする十分なスケジュール不可能なポッドが存在する場合、新しい最小または最大の設定が考慮されます。 スケール イベントの後、新しい数の制限が適用されます。
クラスター全体のオートスケーラー プロファイルで既定値を変更することで、クラスター オートスケーラーの詳細をよりきめ細かに構成することもできます。 たとえば、スケール ダウン イベントは、ノードの使用率が 10 分間低下した後に発生します。 15 分ごとに実行されるワークロードがある場合は、15 分または 20 分経過後に使用率が低いノードをスケールダウンするようにオートスケーラー プロファイルを変更できます。 クラスター オートスケーラーを有効にすると、異なる設定を指定しない限り既定のプロファイルが使用されます。
自動スケーラー プロファイルを保存して読み込む
自動スケーラー プロファイルは、プロファイル定義に YAML ファイルとして保存して格納できます。 テキスト エディターから YAML ファイルを手動で編集し、保存された定義を読み込むことができます。
プロファイルの定義を保存する
プロファイルのコピーは、 kvactl
を使用して YAML ファイルとして保存します。 プロファイルを定義したら、次のコマンドを実行します。
kvactl.exe autoscalerprofile get --name default --kubeconfig (Get-AksHciConfig).Kva.kubeconfig --outputformat=yaml > def.yaml
プロファイルの定義を編集する
プロファイル定義は YAML ファイルで編集できます。 たとえば、メモ帳、Visual Studio Code、またはその他のテキスト エディターで def.yaml を開くことができます。
プロファイルの定義を読み込む
保存した YAML ファイルから kvactl
を使用してプロファイル定義を読み込むことができます。 次のコマンドを実行します。
kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig