2.4.6. CLI を使用して Horizontal Pod Autoscaler を作成する


OpenShift Container Platform CLI を使用して Horizontal Pod Autoscaler (HPA) を作成すると、既存の DeploymentDeploymentConfigReplicaSetReplicationController、または StatefulSet オブジェクトを自動的にスケーリングできます。HPA は、指定した CPU またはメモリーリソースを維持するために、そのオブジェクトに関連付けられた Pod をスケーリングします。

次のセクションで説明するように、リソース使用量のパーセンテージまたは特定の値を指定することにより、CPU またはメモリーの使用量に基づいて自動スケーリングできます。

HPA は、すべての Pod にわたって指定されたリソースの使用を維持するために、レプリカの数を最小数と最大数の間で増減します。

2.4.6.1. CPU 使用率のパーセンテージに応じて Horizontal Pod Autoscaler を作成する

OpenShift Container Platform CLI を使用すると、CPU 使用率に基づいて既存のオブジェクトを自動的にスケーリングする Horizontal Pod Autoscaler (HPA) を作成できます。HPA は、指定した CPU 使用率を維持するために、そのオブジェクトに関連付けられた Pod をスケーリングします。

CPU 使用率のパーセンテージを自動スケーリングする場合、oc autoscale コマンドを使用して、特定の時点で実行する Pod の最小数と最大数、および Pod がターゲットとする平均 CPU 使用率を指定できます。最小値を指定しない場合、Pod には OpenShift Container Platform サーバーからのデフォルト値が付与されます。

注記

他のオブジェクトによって提供される特定の機能または動作が必要でない限り、Deployment オブジェクトまたは ReplicaSet オブジェクトを使用します。

前提条件

Horizontal Pod Autoscaler を使用するには、クラスターの管理者はクラスターメトリクスを適切に設定している必要があります。メトリクスが設定されているかどうかは、oc describe PodMetrics <pod-name> コマンドを使用して判断できます。メトリクスが設定されている場合、出力は以下の Usage の下にある CpuMemory のように表示されます。

$ oc describe PodMetrics openshift-kube-scheduler-ip-10-0-135-131.ec2.internal

出力例

Name:         openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
Namespace:    openshift-kube-scheduler
Labels:       <none>
Annotations:  <none>
API Version:  metrics.k8s.io/v1beta1
Containers:
  Name:  wait-for-host-port
  Usage:
    Memory:  0
  Name:      scheduler
  Usage:
    Cpu:     8m
    Memory:  45440Ki
Kind:        PodMetrics
Metadata:
  Creation Timestamp:  2019-05-23T18:47:56Z
  Self Link:           /apis/metrics.k8s.io/v1beta1/namespaces/openshift-kube-scheduler/pods/openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
Timestamp:             2019-05-23T18:47:56Z
Window:                1m0s
Events:                <none>

手順

  1. 既存のオブジェクトに対して HorizontalPodAutoscaler オブジェクトを作成します。

    $ oc autoscale <object_type>/<name> \
    1
    
      --min <number> \
    2
    
      --max <number> \
    3
    
      --cpu-percent=<percent> 
    4
    1
    自動スケーリングするオブジェクトのタイプと名前を指定します。オブジェクトが存在し、DeploymentDeploymentConfig/dcReplicaSet/rsReplicationController/rc、または StatefulSet である必要があります。
    2
    オプション: スケールダウン時のレプリカの最小数を指定します。
    3
    スケールアップ時のレプリカの最大数を指定します。
    4
    すべての Pod における CPU 使用率の目標平均値を、要求された CPU に対するパーセンテージとして指定します。指定しない場合または負の値の場合、デフォルトの自動スケーリングポリシーが使用されます。

    たとえば、次のコマンドは hello-node デプロイメントオブジェクトの自動スケーリングを示しています。最初のデプロイメントでは 3 つの Pod が必要です。HPA オブジェクトは、最小値を 5 に増やします。Pod の CPU 使用率が 75% に達すると、Pod は 7 まで増加します。

    $ oc autoscale deployment/hello-node --min=5 --max=7 --cpu-percent=75
  2. Horizontal Pod Autoscaler を作成します。

    $ oc create -f <file-name>.yaml

検証

  • Horizontal Pod Autoscaler が作成されていることを確認します。

    $ oc get hpa cpu-autoscale

    出力例

    NAME            REFERENCE            TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
    cpu-autoscale   Deployment/example   173m/500m       1         10        1          20m

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る