Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

25.4.2. メモリー使用率の自動スケーリング

CPU ベースの自動スケーリングとは異なり、メモリーベースの自動スケーリングでは、oc autoscale コマンドの代わりに YAML を使用してAutoscaler を指定することが必要です。オプションとして、Pod の最小数および Pod がターゲットとする必要のある平均のメモリー使用率を指定できます。 これらを指定しない場合は、OpenShift Container Platform サーバーからのデフォルト値がこれらに指定されます。

重要

メモリー使用率の自動スケーリングはテクノロジープレビュー機能です。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

Red Hat のテクノロジープレビュー機能のサポートについての詳細は、https://access.redhat.com/support/offerings/techpreview/ を参照してください。

注記

メモリーベースの自動スケーリングは、自動スケーリング API の v2beta1 バージョンでのみ利用できます。

メモリーベースの自動スケーリングを使用するには、以下を実行します。

  1. メモリーベースの自動スケーリングを有効にします。

    1. 以下をクラスターの master-config.yaml ファイルに追加します。

      ...
      apiServerArguments:
        runtime-config:
        - apis/autoscaling/v2beta1=true
      ...
    2. OpenShift Container Platform サービスを再起動します。

      $ master-restart api
      $ master-restart controllers
  2. 必要な場合は、スケーリングするオブジェクトの名前を取得します。

    $ oc get dc
    
    NAME                  REVISION   DESIRED   CURRENT   TRIGGERED BY
    frontend              1          5         0         config
  3. 以下を hpa.yaml などのファイルに置きます。

    apiVersion: autoscaling/v2beta1
    kind: HorizontalPodAutoscaler
    metadata:
      name: hpa-resource-metrics-memory 1
    spec:
      scaleTargetRef:
        apiVersion: apps.openshift.io/v1 2
        kind: DeploymentConfig 3
        name: frontend 4
      minReplicas: 2 5
      maxReplicas: 10 6
      metrics:
      - type: Resource
        resource:
          name: memory
          targetAverageUtilization: 50 7
    1
    この Horizontal Pod Autoscaler オブジェクトの名前。
    2
    スケーリングするオブジェクトの API バージョン:
    • ReplicationController については、v1 を使用します。
    • DeploymentConfig については、apps.openshift.io/v1 を使用します。
    3
    スケーリングするオブジェクトの種類 (ReplicationController またはDeploymentConfig のいずれか)。
    4
    スケーリングする既存オブジェクトの名前。
    5
    スケールダウン時のレプリカの最小数。デフォルトは 1 です。
    6
    スケールアップ時のレプリカの最大数。
    7
    各 Pod が使用していることが予想される要求されたメモリーの平均のパーセンテージ。
  4. 次に上記のファイルから Autoscaler を作成します。

    $ oc create -f hpa.yaml
重要

メモリーベースの自動スケーリングを機能させるには、メモリー使用量がレプリカ数と比例して増減する必要があります。平均的には以下のようになります。

  • レプリカ数が増えると、Pod ごとのメモリー (作業セット) の使用量が全体的に減少します。
  • レプリカ数が減ると、Pod ごとのメモリー使用量が全体的に増加します。

OpenShift web コンソールを使用して、アプリケーションのメモリー動作を確認し、メモリーベースの自動スケーリングを使用する前にアプリケーションがそれらの要件を満たしていることを確認します。