2.4.6.2. 特定の CPU 値に対する Horizontal Pod Autoscaler の作成


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

注記

他のオブジェクトによって提供される特定の機能または動作が必要でない限り、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. 既存のオブジェクトに対して次のような YAML ファイルを作成します。

    apiVersion: autoscaling/v2 
    1
    
    kind: HorizontalPodAutoscaler
    metadata:
      name: cpu-autoscale 
    2
    
      namespace: default
    spec:
      scaleTargetRef:
        apiVersion: apps/v1 
    3
    
        kind: Deployment 
    4
    
        name: example 
    5
    
      minReplicas: 1 
    6
    
      maxReplicas: 10 
    7
    
      metrics: 
    8
    
      - type: Resource
        resource:
          name: cpu 
    9
    
          target:
            type: AverageValue 
    10
    
            averageValue: 500m 
    11
    1
    autoscaling/v2 API を使用します。
    2
    この Horizontal Pod Autoscaler オブジェクトの名前を指定します。
    3
    スケーリングするオブジェクトの API バージョンを指定します。
    • DeploymentReplicaSetStatefulset オブジェクトの場合は、apps/v1 を使用します。
    • ReplicationController の場合は、v1 を使用します。
    • DeploymentConfig の場合は、apps.openshift.io/v1 を使用します。
    4
    オブジェクトのタイプを指定します。オブジェクトは、DeploymentDeploymentConfig/dcReplicaSet/rsReplicationController/rc、または StatefulSet である必要があります。
    5
    スケーリングするオブジェクトの名前を指定します。オブジェクトが存在する必要があります。
    6
    スケールダウン時のレプリカの最小数を指定します。
    7
    スケールアップ時のレプリカの最大数を指定します。
    8
    メモリー使用量には、metrics パラメーターを使用します。
    9
    CPU 使用率には cpu を指定します。
    10
    AverageValue に設定します。
    11
    ターゲットに設定された CPU 値で averageValue に設定します。
  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
トップに戻る