3.2. Hosted Control Plane のサイジングに関するガイダンス
ホステッドクラスターのワークロードやワーカーノード数などの多くの要因が、一定数のコントロールプレーンノード内に収容できるホステッドクラスターの数に影響します。このサイジングガイドを使用して、ホステッドクラスターの容量計画に役立ててください。このガイダンスでは、高可用性 Hosted Control Plane トポロジーを前提としています。負荷ベースのサイジングの例は、ベアメタルクラスターで測定されました。クラウドベースのインスタンスには、メモリーサイズなど、さまざまな制限要因が含まれる場合があります。
次のリソース使用量のサイズ測定値をオーバーライドし、メトリクスサービスの監視を無効化することもできます。
次の高可用性 Hosted Control Plane の要件を参照してください。この要件は、OpenShift Container Platform バージョン 4.12.9 以降でテストされたものです。
- 78 Pod
- etcd 用の 3 つの 8 GiB PV
- 最小仮想 CPU: 約 5.5 コア
- 最小メモリー: 約 19 GiB
3.2.1. Pod の制限
各ノードの maxPods
設定は、コントロールプレーンノードに収容できるホステッドクラスターの数に影響します。すべてのコントロールプレーンノードの maxPods
値に注意することが重要です。高可用性の Hosted Control Plane ごとに約 75 個の Pod を計画します。
ベアメタルノードの場合、マシンに十分なリソースがある場合でも、Pod 要件を考慮すると、各ノードに約 3 つの Hosted Control Plane が使用されるため、デフォルトで maxPods
設定に 250 が指定されていることが制限要因となる可能性があります。KubeletConfig
値を設定して maxPods
値を 500 に設定すると、Hosted Control Plane の密度が増し、追加のコンピュートリソースを活用できるようになります。
関連情報
3.2.2. 要求ベースのリソース制限
クラスターがホストできる Hosted Control Plane の最大数は、Pod からの Hosted Control Plane CPU およびメモリー要求に基づいて計算されます。
可用性の高い Hosted Control Plane は、5 つの仮想 CPU と 18 GB のメモリーを要求する 78 個の Pod で構成されています。これらのベースライン数値は、クラスターワーカーノードのリソース容量と比較され、Hosted Control Plane の最大数を推定します。
3.2.3. 負荷ベースの制限
クラスターがホストできる Hosted Control Plane の最大数は、Hosted Control Plane の Kubernetes API サーバーに何らかのワークロードが配置されたときの Hosted Control Plane Pod の CPU とメモリーの使用量に基づいて計算されます。
次の方法を使用して、ワークロードの増加に伴う Hosted Control Plane のリソース使用量を測定しました。
- KubeVirt プラットフォームを使用し、それぞれ 8 つの仮想 CPU と 32 GiB を使用する 9 つのワーカーを持つホステッドクラスター
次の定義に基づいて、API コントロールプレーンのストレスに重点を置くように設定されたワークロードテストプロファイル:
- 各 namespace にオブジェクトを作成し、合計 100 の namespace まで拡張しました。
- オブジェクトの継続的な削除と作成により、API のストレスを増加させます。
- ワークロードの 1 秒あたりのクエリー数 (QPS) とバースト設定を高く設定して、クライアント側のスロットリングを排除します。
負荷が 1000 QPS 増加すると、Hosted Control Plane のリソース使用量が、仮想 CPU 9 個分およびメモリー 2.5 GB 分増加します。
一般的なサイジングが目的の場合は、1000 QPS の API レートを 中程度 のホステッドクラスターの負荷、2000 QPS の API レートを 高程度 のホステッドクラスターの負荷とみなしてください。
このテストでは、予想される API 負荷に基づいてコンピュートリソースの使用量を増やすために、推定係数を定めています。正確な使用率は、クラスターのワークロードのタイプとペースによって異なる場合があります。
Hosted Control Plane のリソース使用量のスケーリング | 仮想 CPU | メモリー (GiB) |
---|---|---|
負荷がないときのリソース使用量 | 2.9 | 11.1 |
1000 QPS でのリソース使用量 | 9.0 | 2.5 |
負荷が 1000 QPS 増加すると、Hosted Control Plane のリソース使用量が、仮想 CPU 9 個分およびメモリー 2.5 GB 分増加します。
一般的なサイジングが目的の場合は、1000 QPS API レートを中程度のホステッドクラスターの負荷、2000 QPS API を高程度のホステッドクラスターの負荷とみなしてください。
次の例は、ワークロードおよび API レート定義の Hosted Control Plane リソースのスケーリングを示しています。
QPS (API レート) | 仮想 CPU の使用量 | メモリーの使用量 (GiB) |
---|---|---|
低負荷 (50 QPS 未満) | 2.9 | 11.1 |
中負荷 (1000 QPS) | 11.9 | 13.6 |
高負荷 (2000 QPS) | 20.9 | 16.1 |
Hosted Control Plane のサイジングは、コントロールプレーンの負荷と、大量の API アクティビティー、etcd アクティビティー、またはその両方を引き起こすワークロードに関係します。データベースの実行など、データプレーンの負荷に重点を置くホスト型 Pod ワークロードでは、API レートが高い可能性があります。
3.2.4. サイジング計算の例
この例では、次のシナリオに対してサイジングのガイダンスを提供します。
-
hypershift.openshift.io/control-plane
ノードとしてラベル付けされたベアメタルワーカー 3 つ -
maxPods
値を 500 に設定している - 負荷ベースの制限に応じて、予想される API レートは中または約 1000 である
制限の説明 | サーバー 1 | サーバー 2 |
---|---|---|
ワーカーノード上の仮想 CPU 数 | 64 | 128 |
ワーカーノードのメモリー (GiB) | 128 | 256 |
ワーカーあたりの最大 Pod 数 | 500 | 500 |
コントロールプレーンのホストに使用されるワーカーの数 | 3 | 3 |
最大 QPS ターゲットレート (1 秒あたりの API リクエスト) | 1000 | 1000 |
ワーカーノードのサイズと API レートに基づいた計算値 | サーバー 1 | サーバー 2 | 計算の注記 |
仮想 CPU リクエストに基づくワーカーあたりの最大ホストコントロールプレーン数 | 12.8 | 25.6 | Hosted Control Plane ごとにワーカー仮想 CPU/5 合計仮想 CPU 要求の数 |
仮想 CPU 使用率に基づくワーカーあたりの最大 Hosted Control Plane 数 | 5.4 | 10.7 | 仮想 CPU の数 ÷ (2.9 測定されたアイドル状態の仮想 CPU 使用率 + (QPS ターゲットレート ÷ 1000) × 9.0 1000 QPS 増加あたりの測定された仮想 CPU 使用率) |
メモリーリクエストに基づくワーカーごとの最大 Hosted Control Plane | 7.1 | 14.2 | Hosted Control Plane ごとにワーカーメモリー GiB/18 GiB の合計メモリーリクエスト |
メモリー使用量に基づくワーカーあたりの最大 Hosted Control Plane 数 | 9.4 | 18.8 | ワーカーメモリー GiB ÷ (11.1 測定されたアイドルメモリー使用量 + (QPS ターゲットレート ÷ 1000) × 2.5 1000 QPS 増加あたりの測定されたメモリー使用量) |
ノードごとの Pod の制限に基づくワーカーごとの最大 Hosted Control Plane | 6.7 | 6.7 |
500 |
前述の最大値の中の最小値 | 5.4 | 6.7 | |
仮想 CPU の制限要因 |
| ||
管理クラスター内の Hosted Control Plane の最大数 | 16 | 20 | 前述の各最大値の最小値 x 3 control-plane 用ワーカー |
名前 | 説明 |
| 高可用性 Hosted Control Plane のリソース要求に基づく、クラスターがホストできる Hosted Control Plane の推定最大数。 |
| すべての Hosted Control Plane がクラスターの Kube API サーバーに約 50 QPS を送信する場合、クラスターがホストできる Hosted Control Plane の推定最大数。 |
| すべての Hosted Control Plane がクラスターの Kube API サーバーに約 1000 QPS を送信する場合、クラスターがホストできる Hosted Control Plane の推定最大数。 |
| すべての Hosted Control Plane がクラスターの Kube API サーバーに約 2000 QPS を送信する場合、クラスターがホストできる Hosted Control Plane の推定最大数。 |
| Hosted Control Plane の既存の平均 QPS に基づいて、クラスターがホストできる Hosted Control Plane の推定最大数。アクティブな Hosted Control Plane がない場合、QPS が低くなることが予想されます。 |