すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:Horizontal Pod Autoscaler (HPA)

最終更新日:Sep 17, 2026

Horizontal Pod Autoscaler (HPA) は、リソース使用率に基づいて Pod のレプリカ数を自動的に調整します。 Container Service for Kubernetes (ACK) では、コンソールまたは kubectl を使用して、アプリケーションの HPA を有効にできます。

前提条件

HPA が有効なアプリケーションの作成

コンソールの使用

  1. ACS コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。

  2. クラスター ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションペインで、ワークロード > デプロイメント を選択します。

  3. デプロイメント タブで、イメージから作成 をクリックします。

  4. 基本情報 ページで、アプリケーションパラメーターを設定し、次 をクリックします。

    パラメーター

    説明

    Namespace

    アプリケーションの Namespace。デフォルトは default です。

    Application Name

    アプリケーションの名前。

    Replicas

    アプリケーションの Pod の数。デフォルト:2。

    Workload

    ワークロードの種類。 デプロイメント、ステーフルセット、ジョブ、または タイミングタスク を選択します。

    Labels

    アプリケーションを識別するためのラベル。

    Annotations

    アプリケーションのアノテーション。

    Instance Type

    Pod のインスタンスタイプ。汎用タイプ、[BestEffort]、または パフォーマンスタイプ を選択します。

  5. コンテナー ページで、コンテナーを設定し、イメージを選択して、リソース要求を指定します。次に、次 をクリックします。 詳細については、「コンテナーの設定」をご参照ください。

    説明

    HPA では、Deployment にリソース要求を指定する必要があります。

  6. [Advanced] ページの アクセス制御 セクションで、Service の横にある 作成する をクリックし、Service パラメーターを設定します。 詳細については、「高度な設定」をご参照ください。

  7. [Advanced] ページで、HPA で [Enable] を選択し、スケーリングパラメーターを設定します。

    • メトリック:サポートされているメトリックは CPU とメモリです。設定された必須リソースタイプと一致する必要があります。

    • [トリガ条件:]リソース使用率 (%)。使用率がこの値を超えると、コンテナーはスケールアウトします。 Horizontal Pod Autoscaling アルゴリズムの詳細については、「アルゴリズムの詳細」をご参照ください。

    • [最大レプリカ]:Deployment が実行できるレプリカの最大数。

    • [最小レプリカ]:レプリカ数の下限。

  8. 作成する をクリックして、HPA が有効な Deployment を作成します。

kubectl の使用

kubectl とオーケストレーションテンプレートを使用して HPA オブジェクトを作成し、それを Deployment にバインドすることもできます。

次の例では、NGINX アプリケーションを使用します。

  1. 次の内容の nginx.yaml ファイルを作成し、YAML ファイルに内容をコピーします。

    apiVersion: apps/v1 
    kind: Deployment
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx  
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/nginx:1.7.9 # ご自身のイメージ名とタグに置き換えてください
            ports:
            - containerPort: 80
            resources:
              requests:                         ## HPA が機能するために必要です。
                cpu: 500m
  2. 次のコマンドを実行して、NGINX アプリケーションをデプロイします。

    kubectl apply -f nginx.yaml
  3. 次の内容の hpa.yaml ファイルを作成し、HPA を定義します。

    scaleTargetRef フィールドは、HPA がスケーリングするリソースを指定します。 この例では、nginx Deployment を対象とします。

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: nginx-hpa
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: nginx
      minReplicas: 1  # 最小レプリカ数。1 以上である必要があります。
      maxReplicas: 10 # 最大レプリカ数。minReplicas より大きい必要があります。
      metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 50 # すべての Pod にわたる目標平均使用率。(平均使用量 / 要求量) として計算されます。
                   
  4. 次のコマンドを実行して HPA を作成します。

    kubectl apply -f hpa.yaml
  5. HPA が作成されたら、kubectl describe hpa <HPA_NAME> を実行します。

    次の出力は、HPA が正しく機能していることを示します。

     Type    Reason             Age    From                       Message
      ----    ------             ----   ----                       -------
      Normal  SuccessfulRescale  4m53s  horizontal-pod-autoscaler  New size: 1; reason: All metrics below target

関連情報

スケジュールされた自動スケーリングについては、「Cron Horizontal Pod Autoscaler (CronHPA)」をご参照ください。