12.5 Horizontal Pod Autoscalerの確認

Horizontal Pod Autoscaler (HPA)が動作することを確認するには、次のステップを実行します:
  1. Oracle Unified Directory (OUD)サーバーの現在のステータスを確認します:
    kubectl get pods -n oudns
    出力は次のようになります:
    NAME                              READY   STATUS      RESTARTS   AGE
    oud-ds-rs-0                       1/1     Running     0          5h15m
    oud-ds-rs-1                       1/1     Running     0          5h9m
    oud-ds-rs-2                       1/1     Running     0          5h2m
    oud-pod-cron-job-28242120-bwtcz   0/1     Completed   0          61m
    oud-pod-cron-job-28242150-qf8fg   0/1     Completed   0          31m
    oud-pod-cron-job-28242180-q69lm   0/1     Completed   0          92s
    前述の例では、oud-ds-rs-0oud-ds-rs-1およびoud-ds-rs-2が実行されています。
  2. HPAでOUDサーバーをスケール・アップできるかどうかをテストするには、次のコマンドを実行します:
    kubectl exec --stdin --tty oud-ds-rs-0 -n oudns -- /bin/bash
    これにより、oud-ds-rs-0ポッド内のBashシェルに移動します:
    [oracle@oud-ds-rs-0 oracle]$
  3. Bashシェル内で、次のコマンドを実行してCPUへの負荷を増やします:
    [oracle@oud-ds-rs-0 oracle]$ dd if=/dev/zero of=/dev/null
    このコマンドは、フォアグラウンドで実行が継続されます。
  4. oud-ds-rs-1ポッドに対して前述のステップを繰り返します:
    kubectl exec --stdin --tty oud-ds-rs-1 -n oudns -- /bin/bash
    [oracle@oud-ds-rs-1 oracle]$
    [oracle@oud-ds-rs-1 oracle]$ dd if=/dev/zero of=/dev/null
  5. Bashシェル外部のコマンド・ウィンドウで、次のコマンドを実行して現在のCPU使用率を表示します:
    kubectl get hpa -n oudns
    出力は次のようになります:
    NAME          REFERENCE               TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
    oud-sts-hpa   StatefulSet/oud-ds-rs   125%/70%   3         5         3          5m15s
    前述の例では、CPUは125%に増加しています。これは70%の制限を超えているため、オートスケーラは、追加のOUDサーバーを起動してレプリカを増やします。
  6. 次を実行して、追加のOUDサーバーが起動されているかどうかを確認します:
    kubectl get pods -n oudns
    出力は次のようになります:
    NAME                              READY   STATUS      RESTARTS   AGE
    oud-ds-rs-0                       1/1     Running     0          5h50m
    oud-ds-rs-1                       1/1     Running     0          5h44m
    oud-ds-rs-2                       1/1     Running     0          5h37m
    oud-ds-rs-3                       1/1     Running     0          9m29s
    oud-ds-rs-4                       1/1     Running     0          5m17s
    oud-pod-cron-job-28242150-qf8fg   0/1     Completed   0          66m
    oud-pod-cron-job-28242180-q69lm   0/1     Completed   0          36m
    oud-pod-cron-job-28242210-kn7sv   0/1     Completed   0          6m28s
    前述の例では、1つのOUDサーバーが追加で起動しています(oud-ds-rs-4)。

    ノート:

    サーバーが表示されて起動するまで時間がかかる場合があります。サーバーのREADYステータスが1/1になると、サーバーは起動しています。
  7. CPUへの負荷を停止するには、両方のBashシェルで[Ctrl]+[C]を発行してから、Bashシェルを終了します:
    [oracle@oud-ds-rs-0 oracle]$ dd if=/dev/zero of=/dev/null
    ^C
    [oracle@oud-ds-rs-0 oracle]$ exit
  8. 次のコマンドを実行して、現在のCPU使用率を表示します:
    kubectl get hpa -n oudns
    出力は次のようになります:
    NAME          REFERENCE               TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
    oud-sts-hpa   StatefulSet/oud-ds-rs   4%/70%    3         5         5          40m
    前述の例では、CPUは4%に減少しています。これは70%のしきい値未満であるため、オートスケーラによってサーバーがスケール・ダウンされることがわかります:
    kubectl get pods -n oudns
    出力は次のようになります:
    NAME                              READY   STATUS        RESTARTS   AGE
    oud-ds-rs-0                       1/1     Running       0          5h54m
    oud-ds-rs-1                       1/1     Running       0          5h48m
    oud-ds-rs-2                       1/1     Running       0          5h41m
    oud-ds-rs-3                       1/1     Running       0          13m
    oud-ds-rs-4                       1/1     Terminating   0          8m27s
    oud-pod-cron-job-28242150-qf8fg   0/1     Completed     0          70m
    oud-pod-cron-job-28242180-q69lm   0/1     Completed     0          40m
    oud-pod-cron-job-28242210-kn7sv   0/1     Completed     0          10m
    最終的に、追加のOUDポッドが消失します:
    NAME                              READY   STATUS        RESTARTS   AGE
    oud-ds-rs-0                       1/1     Running       0          5h57m
    oud-ds-rs-1                       1/1     Running       0          5h51m
    oud-ds-rs-2                       1/1     Running       0          5h44m
    oud-ds-rs-3                       1/1     Running       0          16m
    oud-pod-cron-job-28242150-qf8fg   0/1     Completed     0          73m
    oud-pod-cron-job-28242180-q69lm   0/1     Completed     0          43m
    oud-pod-cron-job-28242210-kn7sv   0/1     Completed     0          13m