第2章 OpenShift Serverless Serving のスケーラビリティーとパフォーマンス
OpenShift Serverless は、リソース要件とスケーリング動作が異なる複数の異なるコンポーネントで構成されています。これらのコンポーネントは水平方向および垂直方向にスケーリング可能ですが、リソース要件と設定は実際のユースケースに大きく依存します。
- コントロールプレーンコンポーネント
- これらのコンポーネントは、コントローラー Pod のようにカスタムリソースを監視して反応し、システムを継続的に再設定します。
- データプレーンコンポーネント
- これらのコンポーネントは、Knative Servings アクティベーターコンポーネントなど、リクエストとレスポンスの処理に直接関与します。
次のテストセットアップを使用して、次のメトリクスと調査結果が記録されました。
- OpenShift Container Platform 4.13 を実行するクラスター
- AWS でマシンタイプ m6.xlarge の 4 つのコンピュートノードを実行するクラスター
- OpenShift Serverless 1.30
2.1. OpenShift Serverless Serving のオーバーヘッド
OpenShift Serverless Serving のコンポーネントはデータプレーンの一部であるため、クライアントからのリクエストは次の経路でルーティングされます。
- Ingress ゲートウェイ (Kourier または Service Mesh)
- アクティベーターコンポーネント
- 各 Knative Service 内のキュープロキシーサイドカーコンテナー
これらのコンポーネントは、ネットワークに追加のホップを導入し、監視やリクエストのキューイングの追加などの追加タスクを実行します。測定されたレイテンシーのオーバーヘッドは次のとおりです。
- ネットワークホップが 1 つ増えるごとに、リクエストのレイテンシーが 0.5 - 1 ミリ秒長くなります。Knative Service の現在の負荷と、リクエストの前に Knative Service がゼロにスケーリングされたかどうかに応じて、アクティベーターコンポーネントは常にデータプレーンの一部になるとは限りません。
- ペイロードサイズに応じて、各コンポーネントは 1 秒あたり 2500 件のリクエストを処理するために最大 1 仮想 CPU の CPU を消費します。