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

Container Compute Service:Horizontal Pod Autoscaling (HPA)

最終更新日:Feb 03, 2026

Alibaba Cloud Container Compute Service (ACS) では、コンソールまたは kubectl を使用して、Horizontal Pod Autoscaling (HPA) をサポートするアプリケーションを作成できます。HPA は、リソース使用率に基づいて Pod のレプリカ数を自動的に調整し、アプリケーションが需要に合わせてスケーリングされるようにします。このトピックでは、HPA が有効なアプリケーションを作成し、その自動スケーリング動作を検証する方法について説明します。

前提条件

HPA をサポートするアプリケーションの作成

コンソール

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

  2. クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、Workloads > Deployments を選択します。

  3. Deployments ページで、[イメージから作成] をクリックします。

  4. [基本情報] ページで、アプリケーション名を入力し、[次へ] をクリックします。

    パラメーター

    説明

    名前空間

    アプリケーションをデプロイする名前空間を選択します。デフォルトでは、default 名前空間が選択されています。

    アプリケーション名

    アプリケーションの名前を入力します。

    レプリカ数

    アプリケーションの Pod の初期数を指定します。デフォルトは 2 です。

    ワークロード

    ワークロードタイプで[ステートレス][ステートフル][タスク]、または[定時タスク] を選択します。

    ラベル

    アプリケーションを識別および整理するためのラベルを追加します。

    アノテーション

    アプリケーションにメタデータをアタッチするためのアノテーションを追加します。

    インスタンスタイプ

    Pod インスタンスタイプとして、[汎用][ベストエフォート]、または [コンピューティング最適化] を選択します。

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

    説明

    デプロイメントのリソースリクエストを指定する必要があります。リソースリクエストが定義されていない場合、HPA はコンテナーをスケーリングできません。

  6. [詳細設定] ページの [アクセス設定] セクションで、[作成] をクリックしてサービス設定を構成します。詳細については、「詳細設定」をご参照ください。

  7. [詳細設定] ページで、[メトリックベースのスケーリング][有効化] に設定し、スケーリングパラメーターを構成します。

  8. 右下隅の [作成] をクリックします。これで、HPA が有効なデプロイメントが作成されます。

kubectl

kubectl を使用して、YAML マニフェストから HPA リソースを作成できます。HPA リソースは、ターゲットのデプロイメントを参照してスケーリングします。

次の例では、Nginx アプリケーションに HPA を設定する方法を示します。

  1. nginx.yaml という名前のファイルを作成し、次のデプロイメントマニフェストを追加します。

    このマニフェストは、CPU リソースリクエストを持つ Nginx デプロイメントを定義します。

    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 がモニターおよびスケーリングするデプロイメントを指定します。この例では、HPA は nginx デプロイメントをターゲットにします。

    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 # ターゲットの CPU 使用率 (%)
  4. 次のコマンドを実行して、HPA リソースを作成します。

    kubectl apply -f hpa.yaml
  5. 次のコマンドを実行して、HPA が正しく動作していることを確認します。

    kubectl describe hpa nginx-hpa

    HPA が正しく実行されている場合、次のような出力が表示されます:

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

関連情報

リソースメトリックではなく時間に基づいて自動スケーリングをスケジュールするには、「CronHPA」をご参照ください。