Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


4.2.4 HPAのKubernetesマニフェストの作成

以降に示す要件を満たすように、オートスケール用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

<説明>

  1. オートスケール機能の対象のKubernetesアプリケーションのKubernetesマニフェストに記載したnamespaceと同一のものを指定してください。

  2. オートスケール機能の対象のKubernetesアプリケーションのKubernetesマニフェストに記載したapiVersionと同一のものを指定してください。

  3. オートスケール機能の対象のKubernetesアプリケーションのKubernetesマニフェストに記載したkindと同一のものを指定してください。

  4. オートスケール機能の対象のKubernetesアプリケーションのKubernetesマニフェストに記載したmetadata.nameと同一のものを指定してください。この例ではsql-participantをオートスケール機能の対象としています。

  5. スケールインできる最小のPod数を指定します。

  6. スケールアウトできる最大のPod数を指定します

    5.、6.のPod数については、取扱説明書「HMP-PCTOテクニカルガイド」のスケールアウト/スケールインのPod数の設定範囲の説明を参照し、その範囲内で指定してください。

  7. 評価対象メトリクスと閾値を指定します。

    この例では、CPU、メモリを評価対象メトリクスとしています。

    • CPUを監視対象とするため、resource.nameにCPUを指定します。

    • 監視対象(CPU)の平均利用率を閾値として設定するため、resource.target.typeにUtilizationを指定します。

    • CPUの平均利用率が50%になるように設定するため、resource.target.averageUtilizationに50を指定します。

  8. スケーリングポリシーを指定します。

    スケールアウト/スケールイン時のポリシーをそれぞれ設定します。ポリシーの設定は複数あります。

    • 定数による単位秒当たりのスケーリング回数制限の設定

      この例では、スケールイン時のポリシー(scaleDown)を設定しています。scaleDown.policies以下のtypeにPod、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台までになります。