2.7. アプリケーションのスケーリング


Horizontal Pod Autoscaler (HPA) を使用して、Pod を手動または自動でスケーリングします。クラスターノードをスケーリングすることもできます。

前提条件

  • アクティブな ROSA クラスター
  • 展開された OSToy アプリケーション

2.7.1. Pod の手動スケーリング

次のいずれかの方法を使用して、アプリケーションの Pod を手動でスケーリングできます。

  • ReplicaSet またはデプロイメント定義の変更
  • コマンドラインの使用
  • Web コンソールの使用

このワークショップでは、まず 1 つの Pod だけをマイクロサービスに使用します。デプロイメント定義でレプリカを 1 に定義すると、Kubernetes レプリケーションコントローラーが 1 つの Pod を維持しようとします。次に、負荷に基づいて必要に応じてさらに Pod をスケールアウトする Horizontal Pod Autoscaler (HPA) を使用して Pod の自動スケーリングを定義する方法を学習します。

手順

  1. OSToy アプリケーションで、ナビゲーションメニューの Networking タブをクリックします。
  2. クラスター内通信セクションで、色がランダムに変化するボックスを見つけます。ボックス内に、マイクロサービスの Pod 名が表示されます。この例では、マイクロサービスの Pod が 1 つしかないため、ボックスは 1 つしかありません。

  3. 次のコマンドを実行して、マイクロサービスに対して実行されている Pod が 1 つだけであることを確認します。

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                  READY     STATUS    RESTARTS   AGE
    ostoy-frontend-679cb85695-5cn7x       1/1       Running   0          1h
    ostoy-microservice-86b4c6f559-p594d   1/1       Running   0          1h
    Copy to Clipboard Toggle word wrap

  4. ostoy-microservice-deployment.yaml をダウンロードし、ローカルマシンに保存します。
  5. 次の例を使用して、デプロイメント定義を 1 Pod から 3 Pod に変更します。

    spec:
        selector:
          matchLabels:
            app: ostoy-microservice
        replicas: 3
    Copy to Clipboard Toggle word wrap
  6. 次のコマンドを実行してレプリカの変更を適用します。

    $ oc apply -f ostoy-microservice-deployment.yaml
    Copy to Clipboard Toggle word wrap
    注記

    OpenShift Web コンソールで Workloads > Deployments > ostoy-microservice > YAML タブに移動して、ostoy-microservice-deployment.yaml ファイルを編集することもできます。

  7. 次のコマンドを実行して、Pod が 3 つあることを確認します。

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    出力から、マイクロサービスの Pod が 1 つではなく 3 つあることがわかります。

    出力例

    NAME                                  READY   STATUS    RESTARTS   AGE
    ostoy-frontend-5fbcc7d9-rzlgz         1/1     Running   0          26m
    ostoy-microservice-6666dcf455-2lcv4   1/1     Running   0          81s
    ostoy-microservice-6666dcf455-5z56w   1/1     Running   0          81s
    ostoy-microservice-6666dcf455-tqzmn   1/1     Running   0          26m
    Copy to Clipboard Toggle word wrap

  8. コマンドラインインターフェイス (CLI) または Web ユーザーインターフェイス (UI) を使用してアプリケーションをスケーリングします。

    • CLI で次のコマンドを実行して、Pod の数を 3 から 2 に減らします。

      $ oc scale deployment ostoy-microservice --replicas=2
      Copy to Clipboard Toggle word wrap
    • OpenShift Web コンソール UI のナビゲーションメニューから、Workloads > Deployments > ostoy-microservice をクリックします。
    • 中央に 3 Pod のラベルが付いた青い円を見つけます。
    • 円の横にある矢印を選択すると、Pod の数が増加します。下矢印を選択して 2 にします。

検証

CLI、Web UI、または OSToy アプリケーションを使用して Pod の数を確認します。

  • CLI から次のコマンドを実行して、マイクロサービスに 2 つの Pod が使用されていることを確認します。

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                  READY   STATUS    RESTARTS   AGE
    ostoy-frontend-5fbcc7d9-rzlgz         1/1     Running   0          75m
    ostoy-microservice-6666dcf455-2lcv4   1/1     Running   0          50m
    ostoy-microservice-6666dcf455-tqzmn   1/1     Running   0          75m
    Copy to Clipboard Toggle word wrap

  • Web UI で、Workloads > Deployments > ostoy-microservice を選択します。

  • OSToy アプリケーションのナビゲーションメニューで [Networking] を選択して、2 つの Pod があることを確認することもできます。2 つの Pod の色付きボックスが 2 つがあるはずです。

2.7.2. Pod の自動スケーリング

Red Hat OpenShift Service on AWS は、Horizontal Pod Autoscaler (HPA) を備えています。HPA はメトリクスを使用して、必要に応じて Pod の数を増減します。

手順

  1. Web UI のナビゲーションメニューから、Pod Auto Scaling を選択します。

  2. 次のコマンドを実行して HPA を作成します。

    $ oc autoscale deployment/ostoy-microservice --cpu-percent=80 --min=1 --max=10
    Copy to Clipboard Toggle word wrap

    このコマンドは、ostoy-microservice デプロイメントによって制御される Pod のレプリカを 1 - 10 個の間で維持する HPA を作成するものです。デプロイメント中に、HPA はレプリカの数を増減して、すべての Pod の平均 CPU 使用率を 80% および 40 ミリコアに保ちます。

  3. Pod Auto Scaling > Horizontal Pod Autoscaling ページで、Increase the load を選択します。

    重要

    負荷が増加すると、が発生するため、ページが応答しなくなる可能性があります。これは予想どおりの反応です。負荷の増加を 1 回だけクリックします。プロセスの詳細は、このマイクロサービスの GitHub リポジトリー を参照してください。

    数分後、ページに新しい Pod が色付きのボックスで表示されます。

    注記

    ページに遅延が発生する可能性があります。

検証

次のいずれかの方法で Pod 数を確認します。

  • OSToy アプリケーションの Web UI で、Remote Pods ボックスを確認します。

    Pod は 1 つしかないため、ワークロードを増やすと Pod も増加するはずです。

  • CLI で、次のコマンドを実行します。

    oc get pods --field-selector=status.phase=Running | grep microservice
    Copy to Clipboard Toggle word wrap

    出力例

    ostoy-microservice-79894f6945-cdmbd   1/1     Running   0          3m14s
    ostoy-microservice-79894f6945-mgwk7   1/1     Running   0          4h24m
    ostoy-microservice-79894f6945-q925d   1/1     Running   0          3m14s
    Copy to Clipboard Toggle word wrap

  • OpenShift Cluster Manager から自動スケーリングを確認することもできます。

    1. OpenShift Web コンソールのナビゲーションメニューで、Observe > Dashboards をクリックします。
    2. ダッシュボードで、Kubernetes / Compute Resources / Namespace (Pods) と namespace ostoy を選択します。

    3. CPU とメモリーのリソース使用状況を示すグラフが表示されます。上のグラフは Pod ごとの最近の CPU 消費量を示し、下のグラフはメモリー使用量を示しています。グラフ内の記号の意味は次のとおりです。

      1. 負荷が増加しました (A)。
      2. 2 つの新しい Pod が作成されました (B および C)。
      3. 各グラフの幅は CPU 消費量を表し、どの Pod がより多くの負荷を処理したかを示しています。
      4. 負荷が減少し (D)、Pod が削除されました。

2.7.3. ノードの自動スケーリング

Red Hat OpenShift Service on AWS では、ノードの自動スケーリング を使用できます。ここでは、クラスターが処理できない大きなワークロードを持つジョブを含む新しいプロジェクトを作成します。自動スケーリングが有効な場合、負荷が現在の容量を超えたときに、クラスターが負荷を処理するために新しいノードを自動的に作成します。

前提条件

  • マシンプールで自動スケーリングが有効になっている。

手順

  1. 次のコマンドを実行して、autoscale-ex という新しいプロジェクトを作成します。

    $ oc new-project autoscale-ex
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行してジョブを作成します。

    $ oc create -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/job-work-queue.yaml
    Copy to Clipboard Toggle word wrap
  3. 数分後、次のコマンドを実行して Pod を確認します。

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                     READY   STATUS    RESTARTS   AGE
    work-queue-5x2nq-24xxn   0/1     Pending   0          10s
    work-queue-5x2nq-57zpt   0/1     Pending   0          10s
    work-queue-5x2nq-58bvs   0/1     Pending   0          10s
    work-queue-5x2nq-6c5tl   1/1     Running   0          10s
    work-queue-5x2nq-7b84p   0/1     Pending   0          10s
    work-queue-5x2nq-7hktm   0/1     Pending   0          10s
    work-queue-5x2nq-7md52   0/1     Pending   0          10s
    work-queue-5x2nq-7qgmp   0/1     Pending   0          10s
    work-queue-5x2nq-8279r   0/1     Pending   0          10s
    work-queue-5x2nq-8rkj2   0/1     Pending   0          10s
    work-queue-5x2nq-96cdl   0/1     Pending   0          10s
    work-queue-5x2nq-96tfr   0/1     Pending   0          10s
    Copy to Clipboard Toggle word wrap

  4. 保留中の 状態の Pod が多数あるため、このステータスによりオートスケーラーがトリガーされ、マシンプールにさらにノードが作成されます。これらのワーカーノードが作成されるまで待ちます。
  5. 数分後、次のコマンドを使用して、現在のワーカーノードの数を確認します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                         STATUS   ROLES          AGE     VERSION
    ip-10-0-138-106.us-west-2.compute.internal   Ready    infra,worker   22h     v1.23.5+3afdacb
    ip-10-0-153-68.us-west-2.compute.internal    Ready    worker         2m12s   v1.23.5+3afdacb
    ip-10-0-165-183.us-west-2.compute.internal   Ready    worker         2m8s    v1.23.5+3afdacb
    ip-10-0-176-123.us-west-2.compute.internal   Ready    infra,worker   22h     v1.23.5+3afdacb
    ip-10-0-195-210.us-west-2.compute.internal   Ready    master         23h     v1.23.5+3afdacb
    ip-10-0-196-84.us-west-2.compute.internal    Ready    master         23h     v1.23.5+3afdacb
    ip-10-0-203-104.us-west-2.compute.internal   Ready    worker         2m6s    v1.23.5+3afdacb
    ip-10-0-217-202.us-west-2.compute.internal   Ready    master         23h     v1.23.5+3afdacb
    ip-10-0-225-141.us-west-2.compute.internal   Ready    worker         23h     v1.23.5+3afdacb
    ip-10-0-231-245.us-west-2.compute.internal   Ready    worker         2m11s   v1.23.5+3afdacb
    ip-10-0-245-27.us-west-2.compute.internal    Ready    worker         2m8s    v1.23.5+3afdacb
    ip-10-0-245-7.us-west-2.compute.internal     Ready    worker         23h     v1.23.5+3afdacb
    Copy to Clipboard Toggle word wrap

    ワークロードを処理するためにワーカーノードが自動的に作成されたことがわかります。

  6. 次のコマンドを入力して、OSToy アプリケーションに戻ります。

    $ oc project ostoy
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat