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

Container Compute Service:Horizontal Pod Autoscaler (HPA)

最終更新日:Jun 18, 2026

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

前提条件

HPA 対応アプリケーションの作成

コンソールの使用

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

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

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

  4. Basic Information ページで、アプリケーションパラメーターを設定し、 Next をクリックします。

    パラメーター

    説明

    名前空間

    アプリケーションの名前空間です。デフォルトは default です。

    アプリケーション名

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

    レプリカ

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

    ワークロード

    ワークロードのタイプです。DeploymentsStatefulSetsJobs、または CronJobs から選択します。

    ラベル

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

    アノテーション

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

    インスタンスタイプ

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

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

    説明

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

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

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

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

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

    • [最大レプリカ]:Deployment のレプリカの最大数です。

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

  8. Create をクリックして、HPA 対応の Deployment を作成します。

kubectl の使用

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

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

  1. nginx.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)」をご参照ください。