4.2.4 HPAのKubernetesマニフェストの作成
以降の手順は、Metrics Serverが起動していることを前提としています。
以降に示す要件を満たすように、オートスケール用HPAのKubernetesマニフェストをオートスケール対象のKubernetesアプリケーションごとに作成します。このマニフェストファイルを作成することで、オートスケールを使用するために必要なHPAを利用できます。
HPAのKubernetesマニフェストの記述例を次に示します。HMP-PCTOとしてapiVersionに、autoscaling/v2を指定してください。
詳細な設定方法についてはKubernetesの公式のドキュメントを参照してください。
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: metrics-server-hpa …1
namespace: my-namespace
spec:
scaleTargetRef:
apiVersion: apps/v1 …2
kind: Deployment …3
name: sql-participant …4
minReplicas: 1 …5
maxReplicas: 2 …6
metrics: …7
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
behavior: …8
scaleDown:
policies:
- type: Pods
value: 4
periodSeconds: 60
scaleUp:
policies:
- type: Percent
value: 10
periodSeconds: 60
<説明>
-
オートスケール対象のKubernetesアプリケーションのKubernetesマニフェストに記載するnamespaceと同一のものを指定してください。
-
オートスケール対象のKubernetesアプリケーションのKubernetesマニフェストに記載するapiVersionと同一のものを指定してください。
-
オートスケール対象のKubernetesアプリケーションのKubernetesマニフェストに記載するkindと同一のものを指定してください。
-
オートスケール対象のKubernetesアプリケーションのKubernetesマニフェストに記載するmetadata.nameと同一のものを指定してください。この例ではsql-participantをオートスケール対象としています。
-
スケールインできる最小のPod数を指定します。
-
スケールアウトできる最大のPod数を指定します
5.、6.のPod数については、取扱説明書「HMP-PCTOテクニカルガイド」のスケールアウト/スケールインのPod数の設定範囲の説明を参照し、その範囲内で指定してください。
-
「metrics:」の行から「averageUtilization: 50」の行で、評価対象メトリクスと閾値を指定します。
この例では、CPU、メモリを評価対象メトリクスとしています。
-
CPUを監視対象とするため、resource.nameにCPUを指定します。
-
監視対象(CPU)の平均利用率を閾値として設定するため、resource.target.typeにUtilizationを指定します。
-
CPUの平均利用率が50%になるように設定するため、resource.target.averageUtilizationに50を指定します。
-
-
「behavior:」の行から「periodSeconds: 60」の行で、スケーリングポリシーを指定します。
スケールアウト/スケールイン時のポリシーをそれぞれ設定します。ポリシーの設定は複数あります。
-
定数による単位秒当たりのスケーリング回数制限の設定
この例では、スケールイン時のポリシー(scaleDown)を設定しています。scaleDown.policies以下のtypeにPods、valueに4、periodSecondsに60を指定しているので、60秒間当たりにスケールインする最大Pod数は4台までの設定になります。
-
Pod数の割合による単位秒当たりのスケーリング回数制限の設定
この例では、スケールアウト時のポリシーの設定(scaleUp)を設定しています。scaleUp.policies以下のtypeにPercent、valueに10、periodSecondsに60を指定しているので、60秒間当たりにスケールアウトする台数は全体Pod数の10%までの設定になります。例として全体Pod数が20台の場合は、60秒間当たりにスケールアウトする最大Pod数は全体の10%である2台までになります。
-