割り当てと上限


このドキュメントでは、Google Kubernetes Engine に適用される割り当てとシステムの上限について説明します。

  • 割り当ては、使用できるカウント可能な共有リソースの量を指定します。割り当ては、Google Kubernetes Engine などの Google Cloud サービスによって定義されます。
  • システムの上限は固定値で、変更できません。

Google Cloud では、割り当てを使用して公平性を確保し、リソースの使用量と可用性の急増を抑えます。割り当ては、Google Cloud プロジェクトで使用できる Google Cloud リソースの量を制限します。割り当ては、ハードウェア、ソフトウェア、ネットワーク コンポーネントなど、さまざまなリソースタイプに適用されます。たとえば、割り当てによって、サービスへの API 呼び出しの数、プロジェクトで同時に使用されるロードバランサの数、作成可能なプロジェクトの数を制限できます。割り当てを適用することで、サービスの過負荷を防ぎ、Google Cloud ユーザーのコミュニティを保護します。割り当ては、自組織で使用している Google Cloud リソースの管理にも役立ちます。

Cloud Quotas システムは次のことを行います。

  • Google Cloud のプロダクトとサービスの消費量をモニタリングする
  • これらのリソースの消費量を制限する
  • 割り当て値の変更をリクエストする方法を提供する

ほとんどの場合、割り当ての許容量を超えるリソースを消費しようとすると、システムによってリソースへのアクセスがブロックされ、実行しようとしているタスクは失敗します。

割り当ては通常、Google Cloud プロジェクト レベルで適用されます。あるプロジェクトでリソースを使用しても、別のプロジェクトで使用可能な割り当てに影響することはありません。Google Cloud プロジェクト内では、すべてのアプリケーションと IP アドレスで割り当てが共有されます。

通常、割り当てを調整するには、Google Cloud コンソールを使用します。 詳細については、割り当ての調整をリクエストするをご覧ください。

GKE リソースにはシステムの上限もあります。システムの上限は変更できません。

プロジェクトあたりの上限

単一のプロジェクトで、ゾーンあたり最大 100 のゾーンクラスタと、リージョンあたり 100 のリージョン クラスタを作成できます。

: Autopilot モードで作成されたクラスタは、リージョン クラスタとして事前構成されています。

クラスタあたりの上限

次の表に、GKE クラスタごとの上限を示します。

次の表に示す GKE バージョンは、クラスタノードとコントロール プレーンの両方に適用されます。

制限事項 GKE Standard クラスタ GKE Autopilot クラスタ
クラスタあたりのノード数 65,000 個のノード

この上限を使用する場合は、GKE アーキテクチャを設計する際に次の推奨事項を検討してください。

5,000 個のノード

この上限を使用する場合は、GKE アーキテクチャを設計する際に次の推奨事項を検討してください。

  • 1,000 を超えるノードの実行を予定している場合は、GKE Autopilot バージョン 1.23 以降を使用します。
  • 400 を超えるノードを実行する場合は、以前のバージョンで作成したクラスタに対してクラスタサイズの割り当てを引き上げる必要があります。詳しくは、サポートまでお問い合わせください
ノードプールあたりのノード数 ゾーンあたり 1,000 個のノード

ゾーンあたり 2,000 個の TPU ノード - 1.28.5-gke.135500、1.29.1-gke.1206000、1.30 以降のバージョンが必要です。
該当なし
ゾーン内のノード数
  • NEG ベースの Ingress を使用したコンテナ ネイティブの負荷分散ではノード数の上限はありません。そのため、可能な限りこれを使用することをおすすめします。GKE バージョン 1.17 以降は NEG ベースの Ingress がデフォルトのモードです。
  • 1,000 個のノード: インスタンス グループベースの Ingress を使用している場合。
該当なし
ノードあたりの Pod 数1 256 個の Pod

注: 1.23.5-gke.1300 より前の GKE バージョンの場合、上限の Pod 数は 110 です。

8~256 の任意の値に動的に設定します。GKE は、クラスタサイズとワークロード数を考慮して、ノードあたりの最大 Pod 数をプロビジョニングします。

  • バージョン 1.28 より前の GKE の場合、Pod 数の上限は 32 個です。
  • Accelerator クラスの Pod と Performance クラスの Pod の場合、上限はノードあたり 1 Pod です。
クラスタあたりの Pod 数2 200,000 個の Pod1 200,000 個の Pod
クラスタあたりのコンテナ数 400,000 個のコンテナ 400,000 個のコンテナ
etcd データベースのサイズ 6 GB 6 GB

プラットフォーム管理者として、GKE で実行される大規模なワークロードに割り当てがどのように影響するかを十分理解することをおすすめします。大規模なワークロードのその他の推奨事項、ベスト プラクティス、上限、割り当てについては、スケーラブルなクラスタを作成するためのガイドラインをご覧ください。

API リクエストの上限

Kubernetes Engine API のデフォルトのレート上限は 1 分あたり 3000 リクエストであり、100 秒ごとに適用されます。

リソースの割り当て

ノード数が 100 未満のクラスタの場合、GKE はすべての Namespace に Kubernetes リソース割り当てを適用します。これらの割り当ては、クラスタにデプロイされたアプリケーションの潜在的なバグによって引き起こされる不安定性からクラスタのコントロール プレーンを保護します。これらの割り当ては GKE によって適用されるため、削除できません。

GKE は、ノードの数に比例してリソース割り当ての値を自動的に更新します。100 ノードを超えるクラスタの場合、GKE はリソース割り当てを削除します。

リソースの割り当てを調べるには、次のコマンドを使用します。

kubectl get resourcequota gke-resource-quotas -o yaml

特定の Namespace の値を表示するには、--namespace オプションを追加してその Namespace を指定してください。

割り当て量を確認する

コンソール

  1. Google Cloud コンソールで [割り当て] ページに移動します。

    [割り当て] に移動

  2. [割り当て] ページには、GKE 割り当てに事前に限定された割り当てリストが表示されます。
  3. 正確な割り当てを検索するには、[表をフィルタリング] を使用します。割り当ての名前がわからない場合は、[割り当て] ページのリンクを使用します。

gcloud

  1. 割り当てを確認するには、次のコマンドを実行します。
    gcloud compute project-info describe --project PROJECT_ID

    PROJECT_ID は、実際のプロジェクト ID に置き換えます。

  2. ある特定のリージョンで使用済みの割り当て量を確認するには、次のコマンドを実行します。
    gcloud compute regions describe example-region

メモ

  1. GKE Standard クラスタあたりの Pod の最大数には、システム Pod が含まれます。システム Pod の数は、クラスタの構成と有効な機能によって異なります。

  2. 1 つのノードに収まる Pod の最大数は、Pod のリソース リクエストのサイズとノードの容量によって異なります。すべての上限に同時に到達するとは限りません。ベスト プラクティスとして、大規模なデプロイの負荷テストをおすすめします。