This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.1.4.2. CPU 使用率のための Horizontal Pod Autoscaler の作成
指定する CPU 使用率を維持するために、オブジェクトに関連付けられた Pod を自動的にスケーリングする既存の DeploymentConfig
または ReplicationController
オブジェクトについて Horizontal Pod Autoscaler (HPA) を作成できます。
HPA は、すべての Pod で指定された CPU 使用率を維持するために、最小数と最大数の間でレプリカ数を増減します。
CPU 使用率について自動スケーリングを行う際に、oc autoscale
コマンドを使用し、実行する必要のある Pod の最小数および最大数と Pod がターゲットとして設定する必要のある平均 CPU 使用率を指定することができます。最小値を指定しない場合、Pod には OpenShift Container Platform サーバーからのデフォルト値が付与されます。特定の CPU 値について自動スケーリングを行うには、ターゲット CPU および Pod の制限のある HorizontalPodAutoscaler
オブジェクトを作成します。
前提条件
Horizontal Pod Autoscaler を使用するには、クラスターの管理者はクラスターメトリクスを適切に設定している必要があります。メトリクスが設定されているかどうかは、oc describe PodMetrics <pod-name>
コマンドを使用して判断できます。メトリクスが設定されている場合、出力は以下の Usage
の下にある Cpu
と Memory
のように表示されます。
oc describe PodMetrics openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
$ oc describe PodMetrics openshift-kube-scheduler-ip-10-0-135-131.ec2.internal
手順
CPU 使用率のための Horizontal Pod Autoscaler を作成するには、以下を実行します。
以下のいずれかの手順を実行します。
CPU 使用率のパーセントに基づいてスケーリングするには、既存の
DeploymentConfig
オブジェクトのHorizontalPodAutoscaler
オブジェクトを作成します。oc autoscale dc/<dc-name> \ --min <number> \ --max <number> \ --cpu-percent=<percent>
$ oc autoscale dc/<dc-name> \
1 --min <number> \
2 --max <number> \
3 --cpu-percent=<percent>
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow CPU 使用率のパーセントに基づいてスケーリングするには、既存のレプリケーションコントローラーの
HorizontalPodAutoscaler
オブジェクトを作成します。oc autoscale rc/<rc-name>
$ oc autoscale rc/<rc-name>
1 --min <number> \
2 --max <number> \
3 --cpu-percent=<percent>
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定の CPU 値についてスケーリングするには、既存の
DeploymentConfig
オブジェクトまたはレプリケーションコントローラーについて以下のような YAML ファイルを作成します。以下のような YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
autoscaling/v2beta2
API を使用します。- 2
- この Horizontal Pod Autoscaler オブジェクトの名前を指定します。
- 3
- スケーリングするオブジェクトの API バージョンを指定します。
-
レプリケーションコントローラーについては、
v1
を使用します。 -
DeploymentConfig
オブジェクトについては、apps.openshift.io/v1
を使用します。
-
レプリケーションコントローラーについては、
- 4
- スケーリングするオブジェクトの種類 (
ReplicationController
またはDeploymentConfig
のいずれか) を指定します。 - 5
- スケーリングするオブジェクトの名前を指定します。オブジェクトが存在する必要があります。
- 6
- スケールダウン時のレプリカの最小数を指定します。
- 7
- スケールアップ時のレプリカの最大数を指定します。
- 8
- メモリー使用率に
metrics
パラメーターを使用します。 - 9
- CPU 使用率に
cpu
を指定します。 - 10
AverageValue
に設定します。- 11
- ターゲットに設定された CPU 値で
averageValue
に設定します。
Horizontal Pod Autoscaler を作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Horizontal Pod Autoscaler が作成されていることを確認します。
oc get hpa cpu-autoscale
$ oc get hpa cpu-autoscale NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE cpu-autoscale ReplicationController/example 173m/500m 1 10 1 20m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のコマンドは、image-registry
DeploymentConfig
オブジェクトが制御する Pod の 3 から 7 までのレプリカを維持し、すべての Pod で 75% の平均 CPU 使用率を維持する Horizontal Pod Autoscaler を作成します。
oc autoscale dc/image-registry --min 3 --max 7 --cpu-percent=75
$ oc autoscale dc/image-registry --min 3 --max 7 --cpu-percent=75
deploymentconfig "image-registry" autoscaled
このコマンドは、以下の定義で Horizontal Pod Autoscaler を作成します。
oc edit hpa frontend -n openshift-image-registry
$ oc edit hpa frontend -n openshift-image-registry
以下の例は、image-registry
DeploymentConfig
オブジェクトの自動スケーリングを示しています。最初のデプロイメントでは 3 つの Pod が必要です。HPA オブジェクトは最小で 5 まで増加され、Pod 上の CPU 使用率が 75% に達すると、Pod を最大 7 まで増やします。