Red Hat Training

A Red Hat training course is available for OpenShift Online

19.4. CPU 使用率の自動スケーリング

oc autoscale コマンドを使用して、少なくとも指定される時間に実行する Pod の最大数を指定します。オプションとして Pod の最小数と Pod がターゲットとする平均の CPU 使用率を指定できます。 指定しない場合は、OpenShift Online サーバーからのデフォルト値がそれらに指定されます。

以下は例になります。

$ oc autoscale dc/frontend --min 1 --max 10 --cpu-percent=80
deploymentconfig "frontend" autoscaled

上記の例では、Horizontal Pod Autoscaler の autoscaling/v1 を使用して以下の定義で Horizontal Pod Autoscaler をする作成方法を示しています。

例19.1 Horizontal Pod Autoscaler オブジェクト定義

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: frontend 1
spec:
  scaleTargetRef:
    kind: DeploymentConfig 2
    name: frontend 3
    apiVersion: apps/v1 4
    subresource: scale
  minReplicas: 1 5
  maxReplicas: 10 6
  targetCPUUtilizationPercentage: 80 7
1
この Horizontal Pod Autoscaler オブジェクトの名前
2
スケーリングするオブジェクトの種類
3
スケーリングするオブジェクトの名前
4
スケーリングするオブジェクトの API バージョン
5
スケールダウン時のレプリカの最小数
6
スケールアップ時のレプリカの最大数
7
各 Pod が使用していることが期待される要求された CPU のパーセンテージ

または、oc autoscale コマンドは Horizontal Pod Autoscaler の v2beta1 バージョンを使用する際に以下の定義を使用して Horizontal Pod Autoscaler を作成します。

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: hpa-resource-metrics-cpu 1
spec:
  scaleTargetRef:
    apiVersion: apps/v1 2
    kind: ReplicationController 3
    name: hello-hpa-cpu 4
  minReplicas: 1 5
  maxReplicas: 10 6
  metrics:
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 50 7
1
この Horizontal Pod Autoscaler オブジェクトの名前
2
スケーリングするオブジェクトの API バージョン
3
スケーリングするオブジェクトの種類
4
スケーリングするオブジェクトの名前
5
スケールダウン時のレプリカの最小数
6
スケールアップ時のレプリカの最大数
7
各 Pod が使用していることが予想される要求された CPU の平均のパーセンテージ