4.4.3 チューニング方法
「4.4.1 設計指針」で示したチューニング要素およびチューニング観点について、具体的なチューニング方法を説明します。
- 〈この項の構成〉
(1) 評価対象メトリクスの閾値のチューニング方法
次の流れでチューニングします。
-
チューニング対象のKubernetesアプリケーションの過去のメトリクスデータを参照して、通常の負荷状態やピーク時の負荷の傾向を把握した上で、閾値を検討します。
-
検討した閾値を基に、HPAのKubernetesマニフェストの設定値を修正します。
ただし、オートスケール機能のメトリクスの収集方法によって、チューニング対象のKubernetesアプリケーションの過去のメトリクスデータを参照する方法、およびHPAのKubernetesマニフェストの設定項目が異なります。メトリクスの収集方法ごとの差異を次の表に示します。
|
オートスケール機能のメトリクスの収集方法 |
チューニング対象のKubernetesアプリケーションの過去のメトリクスデータを参照する方法 |
HPAのKubernetesマニフェストの設定項目 |
|---|---|---|
|
Metrics Server |
kubectl topコマンドを利用して、Podの負荷状況を監視します。 |
spec.metrics(「4.2.4 HPAのKubernetesマニフェストの作成」参照) |
|
Prometheus |
スケーリングの閾値で利用するクエリをPrometheusのWeb UIで確認します。PrometheusのWeb UIの確認方法の詳細については、「11.5.3 メトリクス」を参照してください。 |
spec.triggers(「4.3.3 HPAのKubernetesマニフェストの作成」参照) |
(2) 評価対象メトリクスの評価間隔のチューニング方法
次の流れでチューニングします。
-
チューニング対象のKubernetesアプリケーションの過去のPod数の増減を確認して、負荷の変動とスケーリングの反応速度の関係を把握した上で、評価間隔を検討します。
チューニング対象のKubernetesアプリケーションの過去のPod数の増減を確認する方法は、「4.4.4 オートスケール機能によるPod数の増減を確認する方法」を参照してください。
-
検討した閾値を基に、kube-controller-managerの設定値のhorizontal-pod-autoscaler-sync-periodを修正します。
Metrics Serverでメトリクスを収集する場合の設定方法の詳細については、「4.2.5 HPAの設定のカスタマイズ」を参照してください。Prometheusでメトリクスを収集する場合の設定方法の詳細については、「4.3.3 HPAのKubernetesマニフェストの作成」を参照してください。
-
Prometheusでメトリクスを収集する場合は、Prometheusがメトリクス対象から情報を収集する頻度を設定します。目安として、評価対象メトリクスの評価間隔の半分の時間を設定します。Prometheusの収集頻度はprometheus.scrape.intervalパラメタに設定してください。prometheus.scrape.intervalパラメタの詳細については、「9.3.8 Prometheus」を参照してください。
(3) 評価対象メトリクスの許容範囲のチューニング方法
次の流れでチューニングします。
-
チューニング対象のKubernetesアプリケーションの過去のPod数の増減を確認して、頻繁にスケールイン/スケールアウトを繰り返していないかを確認します。
チューニング対象のKubernetesアプリケーションの過去のPod数の増減を確認する方法は、「4.4.4 オートスケール機能によるPod数の増減を確認する方法」を参照してください。
-
1.で問題がある場合、kube-controller-managerの設定値のhorizontal-pod-autoscaler-toleranceを修正します。
Metrics Serverでメトリクスを収集する場合の設定方法の詳細については、「4.2.5 HPAの設定のカスタマイズ」を参照してください。Prometheusでメトリクスを収集する場合の設定方法の詳細については、「4.3.3 HPAのKubernetesマニフェストの作成」を参照してください。
(4) Mediatorのスケールインの頻度のチューニング方法
次の流れでチューニングします。
-
チューニング対象のKubernetesアプリケーションの過去のPod数の増減を確認し、「4.4.1 設計指針」で説明した「トランザクションが決着するまでの最大時間の目安」よりも早いタイミングで同時に2台以上のMediatorのPodがスケールインしていないかを確認します。確認方法については、「4.4.4 オートスケール機能によるPod数の増減を確認する方法」を参照してください。
-
1.で問題がある場合、HPAのKubernetesマニフェストの設定値を修正します。
オートスケール機能のメトリクスの収集方法によって、設定項目が異なります。オートスケール機能のメトリクスの収集方法ごとの設定項目の差異を次の表に示します。
表4‒11 オートスケール機能のメトリクスの収集方法ごとの設定項目の差異 オートスケール機能のメトリクスの収集方法
HPAのKubernetesマニフェストの設定項目
Metrics Server
spec.behavior.scaleDown.policies(「4.2.4 HPAのKubernetesマニフェストの作成」参照)
Prometheus
spec.advanced.horizontalPodAutoscalerConfig.behavior.scaleDown.policies(「4.3.3 HPAのKubernetesマニフェストの作成」参照)