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/v2beta2API を使用します。- 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>.yamlCopy 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 20mCopy 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 まで増やします。