Red Hat Training

A Red Hat training course is available for OpenShift Online

19.6. Horizontal Pod Autoscaler の表示

Horizontal Pod Autoscaler のステータスを表示するには、以下を実行します。

  • oc get コマンドを使用して CPU 使用率および Pod 制限の情報を表示します。

    $ oc get hpa/hpa-resource-metrics-cpu
    NAME                         REFERENCE                                 TARGET    CURRENT  MINPODS        MAXPODS    AGE
    hpa-resource-metrics-cpu     DeploymentConfig/default/frontend/scale   80%       79%      1              10         8d

    出力には以下が含まれます。

    • Target。デプロイメント設定で制御されるすべての Pod でターゲットに設定された平均 CPU 使用率です。
    • Current。デプロイメント設定で制御されるすべての Pod における現在の CPU 使用率。
    • Minpods/Maxpods。Autoscaler で設定できるレプリカの最小数および最大数です。
  • Horizontal Pod Autoscaler オブジェクトの詳細情報を参照するには、oc describe コマンドを使用します。

    $ oc describe hpa/hpa-resource-metrics-cpu
    Name:                           hpa-resource-metrics-cpu
    Namespace:                      default
    Labels:                         <none>
    CreationTimestamp:              Mon, 26 Oct 2015 21:13:47 -0400
    Reference:                      DeploymentConfig/default/frontend/scale
    Target CPU utilization:         80% 1
    Current CPU utilization:        79% 2
    Min replicas:                   1 3
    Max replicas:                   4 4
    ReplicationController pods:     1 current / 1 desired
    Conditions: 5
      Type                  Status  Reason                  Message
      ----                  ------  ------                  -------
      AbleToScale           True    ReadyForNewScale        the last scale time was sufficiently old as to warrant a new scale
      ScalingActive         True    ValidMetricFound        the HPA was able to successfully calculate a replica count from pods metric http_requests
      ScalingLimited        False   DesiredWithinRange      the desired replica count is within the acceptable range
    Events:
    1
    各 Pod が使用していることが予想される要求されたメモリーの平均のパーセンテージ。
    2
    デプロイメント設定で制御されるすべての Pod における現在の CPU 使用率。
    3
    スケールダウン時のレプリカの最小数。
    4
    スケールアップ時のレプリカの最大数。
    5
    オブジェクトが v2alpha1 API を使用している場合、状況条件が表示されます。

19.6.1. Horizontal Pod Autoscaler の状況条件の表示

状況条件セットを使用して、Horizontal Pod Autoscaler がスケーリングできるかどうかや、現時点でこれがいずれかの方法で制限されているかどうかを判別できます。

Horizontal Pod Autoscaler の状況条件は、自動スケーリング API の v2beta1 バージョンで利用できます。

kubernetesMasterConfig:
  ...
  apiServerArguments:
    runtime-config:
    - apis/autoscaling/v2beta1=true

以下の状況条件が設定されます。

  • AbleToScale は Horizontal Pod Autoscaler がスケールをフェッチし、更新できるかどうかや、いずれかのバックオフ条件がスケーリングを防いでいないかどうかを示します。

    • True 条件はスケーリングが許可されることを示します。
    • False 条件は指定される理由によりスケーリングが許可されないことを示します。
  • ScalingActive は Horizontal Pod Autoscaler が有効にされており (ターゲットのレプリカ数がゼロでない)、必要なメトリクス (scale) を計算できるかどうかを示します。

    • True 条件はメトリクスが適切に機能していることを示します。
    • False 条件は通常フェッチするメトリクスに関する問題を示します。
  • ScalingLimited は、レプリカの最大または最小数に達したために自動スケーリングが許可されないことを示します。

    • True 条件は、スケーリングするためにレプリカの最小または最大数を引き上げるか、または引き下げる必要があることを示します。
    • False 条件は、要求されたスケーリングが許可されることを示します。

この行を追加または編集する必要がある場合には、OpenShift Online サービスを再起動します。

Horizontal Pod Autoscaler に影響を与える条件を表示するには、oc describe hpa を使用します。条件は status.conditions フィールドに表示されます。

$ oc describe hpa cm-test
Name:                           cm-test
Namespace:                      prom
Labels:                         <none>
Annotations:                    <none>
CreationTimestamp:              Fri, 16 Jun 2017 18:09:22 +0000
Reference:                      ReplicationController/cm-test
Metrics:                        ( current / target )
  "http_requests" on pods:      66m / 500m
Min replicas:                   1
Max replicas:                   4
ReplicationController pods:     1 current / 1 desired
Conditions: 1
  Type                  Status  Reason                  Message
  ----                  ------  ------                  -------
  AbleToScale       True      ReadyForNewScale    the last scale time was sufficiently old as to warrant a new scale
  ScalingActive     True      ValidMetricFound    the HPA was able to successfully calculate a replica count from pods metric http_request
  ScalingLimited    False     DesiredWithinRange  the desired replica count is within the acceptable range
Events:
1
Horizontal Pod Autoscaler の状況メッセージです。
  • AbleToScale 条件では、HPA がスケールを取得して更新できるか、またバックオフ関連の条件によりスケーリングを防止できるかどうかを指定します。
  • ScalingActive の条件は、HPA を有効にするか (たとえば、ターゲットのレプリカ数は 0 でないなど)、任意のスケーリングを計算できるかどうかを指定します。「False」の状態は通常、メトリクスの取得に問題があることを示します。
  • ScalingLimited の条件は、スケーリングが Horiontal Pod Autoscaler の最大値または最小値で制限されていることを示します。「True」の状態は通常、Horizontal Pod Autoscaler で最小または最大レプリカ数の制限の増減を実行する必要があることを示します。

以下は、スケーリングできない Pod の例です。

Conditions:
  Type           Status    Reason            Message
  ----           ------    ------            -------
  AbleToScale    False     FailedGetScale    the HPA controller was unable to get the target's current scale: replicationcontrollers/scale.extensions "hello-hpa-cpu" not found

以下は、スケーリングに必要なメトリクスを取得できなかった Pod の例です。

Conditions:
  Type                  Status    Reason                    Message
  ----                  ------    ------                    -------
  AbleToScale           True     SucceededGetScale          the HPA controller was able to get the target's current scale
  ScalingActive         False    FailedGetResourceMetric    the HPA was unable to compute the replica count: unable to get metrics for resource cpu: no metrics returned from heapster

以下は、要求される自動スケーリングが要求される最小数よりも小さい場合の Pod の例です。

Conditions:
  Type              Status    Reason              Message
  ----              ------    ------              -------
  AbleToScale       True      ReadyForNewScale    the last scale time was sufficiently old as to warrant a new scale
  ScalingActive     True      ValidMetricFound    the HPA was able to successfully calculate a replica count from pods metric http_request
  ScalingLimited    False     DesiredWithinRange  the desired replica count is within the acceptable range
Events: