4.2.5 HPAの設定のカスタマイズ
この手順は、Kubernetesクラスタ全体のHPA関連のパラメタの設定を変更したい場合に実施します。
kube-controller-managerは、Kubernetesクラスタで、DeploymentやServiceなどのKubernetesオブジェクトを管理するプロセスを実行する共通コンポーネントです。この設定項目の中にHPAに関する設定項目があります。オートスケール以外の設定項目の詳細については、Kubernetesの公式ドキュメントを参照してください。
kube-controller-managerの設定方法には、マニフェストファイルで設定する方法とコマンドで設定する方法の2つの方法があります。ここでは、コマンドでの設定方法を説明します。
コマンドで設定する場合の構文を次に示します。
kube-controller-manager [flags]
[flags]に設定項目のフラグ名と設定値を指定してコマンドを実行すると、kube-controller-managerの設定が反映されます。
オートスケールに影響のある主なフラグを次に示します。
-
--horizontal-pod-autoscaler-cpu-initialization-period
HPAがCPUのメトリクス評価を始めてから実際にスケーリングをするまでの待機時間です。Podの起動直後は、起動処理などで通常時よりもCPU使用率が高くなる場合があります。起動直後のPodのスケーリングを制御するため、このフラグで待機時間を設定します。
秒単位で時間を指定します。デフォルト値は300(5分)です。
-
--horizontal-pod-autoscaler-downscale-stabilization
HPAがあるPodのスケールインをしてから、次にスケールインをするまでの待機時間です。負荷状況が短い時間で変化する場合に、Podの稼働台数を安定させるためにこのフラグを使用します。
秒単位で時間を指定します。デフォルト値は300(5分)です。
-
--horizontal-pod-autoscaler-initial-readiness-delay
評価対象のPodのステータスがReadyに変化してから待機する時間の設定です。Readyになった直後はPodの負荷状況が安定していない場合があるため、Ready直後からPodが評価可能になるまで、最低限待機する時間を設定します。
秒単位で時間を指定します。デフォルト値は30(30秒)です。
-
--horizontal-pod-autoscaler-sync-period
HPAがメトリクスを評価する間隔の設定です。この設定値に従って、メトリクスの評価頻度が変化します。
秒単位で間隔を指定します。デフォルト値は15(15秒)です。
-
--horizontal-pod-autoscaler-tolerance
評価対象メトリクスの値と閾値を比較したときに、スケールアウト/スケールインを実施しない範囲を指定します。
実数で指定します。デフォルト値は0.1です。
メトリクスの評価間隔を30秒に設定する場合の、コマンドの実行例を次に示します。
kube-controller-manager --horizontal-pod-autoscaler-sync-period=30