GKE Standard での Autopilot モードのワークロードについて


ComputeClasses を使用すると、GKE Standard モードのクラスタで Google Kubernetes Engine(GKE)Autopilot ワークロードを実行できます。このページでは、Autopilot モードでワークロードを実行するために使用できる方法について説明し、特定のモードでワークロードを実行するタイミングを判断するのに役立ちます。

この情報は、次のような方を対象としています。

  • 組織の運用コストを最適化したいクラウド アーキテクト。
  • 手動のインフラストラクチャ管理のオーバーヘッドを削減したいプラットフォーム管理者。
  • インフラストラクチャのメンテナンス、アップグレード、スケーリングを可能な限り Google Cloud に移行したいサイト信頼性エンジニア(SRE)。

次のコンセプトに精通している必要があります。

GKE Autopilot について

Autopilot は、ノード インフラストラクチャ、スケーリング、セキュリティ、事前構成された機能を Google が管理する GKE の運用モードです。Autopilot モードは、セキュリティ、信頼性、パフォーマンス、スケーラビリティに関する推奨設定が適用された環境で、ほとんどの本番環境ワークロードを実行するように最適化されています。要件に基づいて Autopilot モードと Standard モードのどちらを選択するかについては、GKE のオペレーション モードについてをご覧ください。

Autopilot モードは、次の方法で使用できます。

  • Autopilot モードを使用するクラスタを作成する: Google がクラスタ全体を管理し、自動化、信頼性、セキュリティ、費用に関するベスト プラクティスを適用します。
  • Standard クラスタで Autopilot モードでワークロードを実行する: Autopilot ComputeClass をデプロイし、ワークロードで選択します。Google は、これらの特定のワークロード用に GKE が作成するノードを管理します。クラスタを制御し、GKE が管理するノードとともに独自のノードプールを実行できます。

ComputeClass の Autopilot モードについて

ComputeClass は、マシンタイプや機能設定などのノード構成のリストを定義する Kubernetes カスタム リソースです。Kubernetes ワークロード仕様で特定の ComputeClass を選択できます。ComputeClass を選択するワークロードで新しいノードが必要になると、GKE は ComputeClass が宣言する構成のいずれかを使用してノードをプロビジョニングしようとします。GKE は、ComputeClass の各構成を順番に試し、ノードの作成に失敗した場合は次の構成にフォールバックします。詳細については、カスタム ComputeClass についてをご覧ください。

GKE Standard クラスタで Autopilot ワークロードを実行するには、ComputeClass で Autopilot モードを有効にして、特定のワークロードでその ComputeClass を選択します。Google は、これらのワークロード用に GKE がプロビジョニングする新しいノードを、Autopilot クラスタのノードを管理するのと同様に管理します。Autopilot モードのメリットとセキュリティ機能のほとんどは、これらのワークロードとホストノードに適用されます。

Autopilot モードの ComputeClass を使用すると、クラスタ管理者は、クラスタ内の特定のワークロードやインフラストラクチャに対して必要な制御レベルを次のように柔軟に選択できます。

  • 特定のワークロードを Autopilot モードで実行することで、GKE に完全に管理させることができます。
  • 手動で作成されたノードプールなど、Autopilot モードを使用しないワークロードとインフラストラクチャは完全に制御できます。
  • Autopilot ComputeClass をクラスタまたは Namespace のデフォルトとして設定すると、ワークロードは別のオプションを明示的にリクエストしない限り、Autopilot モードで実行されます。

これらのオプションを使用すると、クラスタ管理者は Autopilot を使用するレベルとスコープを決定できます。

Autopilot モードの ComputeClass を使用すると、クラスタ管理者は、クラスタ内の特定のワークロードやインフラストラクチャに対して必要な制御レベルを次のように柔軟に選択できます。

  • 特定のワークロードを Autopilot モードで実行することで、GKE に完全に管理させることができます。
  • 手動で作成されたノードプールなど、Autopilot モードを使用しないワークロードとインフラストラクチャは完全に制御できます。
  • Autopilot ComputeClass をクラスタまたは Namespace のデフォルトとして設定すると、ワークロードは別のオプションを明示的にリクエストしない限り、Autopilot モードで実行されます。

これらのオプションを使用すると、クラスタ管理者は Autopilot を使用するレベルとスコープを決定できます。

Standard クラスタで Autopilot ComputeClass を使用するメリット

ワークロードの一部を Autopilot モードで実行すると、次のようなメリットがあります。

  • インフラストラクチャの管理コストを削減する: Google が、特定のノードのアップグレード、メンテナンス、構成、チューニングを行います。
  • Autopilot 料金モデルを使用する: Autopilot ComputeClass を使用するワークロードは、Autopilot 料金モデルを使用して課金されます。この料金モデルには、特定のハードウェアをリクエストしないワークロードの Pod ごとの課金が含まれます。詳細については、料金セクションをご覧ください。
  • スケーリングとセキュリティ ポスチャーの改善: Autopilot ワークロードでは、コンテナ最適化コンピューティング プラットフォームへのアクセス、デフォルトのセキュリティ制約の改善、リソース リクエストに基づくノードの自動スケーリングなどのメリットがあります。これらのワークロードのノードは、ノードの自動アップグレードや自動修復などの機能を使用します。
  • 信頼性の向上: GKE のサービスレベル契約(SLA)には、Autopilot の Pod 稼働率のサービスレベル目標(SLO)が含まれています。

これらのメリットの多くは Autopilot クラスタでも提供されます。Autopilot クラスタは、Standard クラスタよりも管理しやすい環境を提供し、セキュリティ、ネットワーキング、リソース管理に関する複数のメリットも提供します。詳細については、Autopilot の概要をご覧ください。

Autopilot ComputeClass でのハードウェアの選択

Autopilot ComputeClass では、ノードに特定のハードウェア(GPU やマシンタイプなど)を選択できます。また、GKE が汎用のコンテナ最適化コンピューティング プラットフォームに Pod を配置することもできます。汎用オプションは、特定のハードウェアを必要としないほとんどの本番環境ワークロードに推奨されます。

次の表に、これらの構成オプション、ComputeClass での選択方法、この選択が課金モデルに与える影響を示します。

表 1.Autopilot ComputeClass でのハードウェアの選択
ワークロードの要件 推奨される ComputeClass 構成 課金モデル
汎用ワークロード

podFamily 優先度ルールを含む Autopilot ComputeClass を使用して、特定のハードウェアを必要としないワークロードを Autopilot コンテナ最適化コンピューティング プラットフォームで実行します。このプラットフォームは、次のような汎用ワークロードに適しています。

  • ウェブサーバー
  • イベント ドリブン ジョブ
  • バッチ処理
  • CI / CD パイプライン

Standard クラスタで使用できる組み込みの Autopilot ComputeClass は、podFamily 優先度ルールを使用します。

Pod ベースの課金モデル
特定のハードウェアを必要とするワークロード

machineFamily ルールや gpus ルールなど、使用可能なハードウェア構成ルールを使用する ComputeClass を使用します。

ノードベースの課金モデル

ComputeClasses での Autopilot の構成

Standard クラスタで Autopilot モードを使用するには、GKE が提供する組み込みの Autopilot ComputeClass を使用するか、作成したカスタム ComputeClass で Autopilot を有効にします。以降のセクションでは、各オプションについて説明します。

組み込みの Autopilot ComputeClass

GKE は、特定の Autopilot ComputeClass を構成します。これらの組み込み Autopilot クラスは、対象となる任意のクラスタで選択できます。Standard クラスタの組み込み Autopilot ComputeClass は、podFamily 優先度ルールを使用して、コンテナ最適化コンピューティング プラットフォームで Pod を実行します。詳細については、GKE の組み込み ComputeClass についてをご覧ください。

カスタム Autopilot ComputeClass

管理するカスタム ComputeClass で Autopilot を有効にできます。このオプションは、ワークロードに特定のハードウェア要件がある場合に便利です。ComputeClass カスタム リソースの autopilot フィールドを使用すると、特定の ComputeClass で Autopilot を有効または無効にできます。

既存の ComputeClass で Autopilot を有効にするには、ComputeClass を削除し、構成を更新してから、クラスタに ComputeClass を再作成する必要があります。変更は、Autopilot ComputeClass の更新後にデプロイするワークロード用に GKE が作成する新しいノードに適用されます。

カスタム コンピューティング クラスで Autopilot を有効にする方法については、Autopilot Pod に特定のハードウェアを選択するをご覧ください。

料金

GKE Autopilot の料金は、GKE が Autopilot ComputeClass 用に作成するノードとワークロードに適用されます。次の表に、Standard モードのクラスタで異なる Autopilot ComputeClass 構成に適用される課金モデルを示します。

表 3. Autopilot ComputeClass の料金
さまざまな ComputeClass 構成の課金モデル
Pod ベースの課金モデル Pod ベースの課金モデルは、特定のマシンやハードウェアを選択する代わりに podFamily 優先度ルールを使用する Autopilot コンピューティング クラスに適用されます。podFamily ルールを使用する組み込みの Autopilot ComputeClass は、Pod ベースの課金モデルを使用します。
ノードベースの課金モデル ノードベースの課金モデルは、N2 インスタンスや GPU などの特定のノード構成を明示的にリクエストする Autopilot コンピューティング クラスに適用されます。

Autopilot の料金は、Autopilot ComputeClass を使用するワークロードとノードにのみ適用されます。Standard モードのクラスタと実行する他のノードプールは、引き続き GKE Standard モードの料金を使用します。

Autopilot で管理されるノードの事前構成済みの設定

ComputeClass で Autopilot モードを有効にする前に、GKE が Autopilot ワークロードを実行するために作成するノードについて理解しておいてください。Google は、Autopilot ノードで特定の機能とセキュリティ制約を構成します。そのため、Standard モードのノードで正しくデプロイして機能するワークロードが、Autopilot のセキュリティ要件を満たしていない場合、Autopilot モードで拒否されることがあります。

次の表に、Standard クラスタの対応する設定をオーバーライドする機能構成を示します。構成がこの表にない場合、Autopilot ノードは Standard クラスタの設定を使用します。たとえば、この表に Workload Identity Federation for GKE がない場合、Standard クラスタの Workload Identity Federation for GKE 設定が、GKE が作成する Autopilot ノードに適用されます。

表 4.Autopilot ノードの事前構成済みの設定
機能 Standard クラスタレベルの設定 Autopilot 管理ノードの設定
ノードのアップグレードとメンテナンス

構成可能:

事前構成済み:

  • ノードの自動修復: 有効
  • ノードの自動アップグレード: 有効
  • ノードのアップグレード戦略: 事前構成されたパラメータを使用したサージ アップグレード
自動スケーリング 構成可能: 自動スケーリング プロファイル 事前構成済み: optimize-utilization 自動スケーリング プロファイル
ネットワーキング VPC ネイティブまたはルートベース VPC ネイティブ クラスタが必要
セキュリティ

構成可能:

事前構成済み:

ノードのオペレーティング システム

構成可能:

事前構成済み:

ノード ブートディスク

構成可能:

構成可能:

  • ブートディスクのタイプ: ComputeClass の storage.bootDiskType フィールドの値を使用します。このフィールドが設定されていない場合、GKE はブートディスクのタイプを次のように設定します。
    • ComputeClass が podFamily ルールを使用している場合、GKE は pd-balanced ディスクを使用します。
    • ComputeClass で podFamily ルールが使用されていない場合、GKE はクラスタのデフォルトのブートディスク タイプを使用します。
  • ブートディスクのサイズ: GKE は、コンピューティング クラスの storage.bootDiskSize フィールドの値を使用します。このフィールドが設定されていない場合、GKE はブートディスクのサイズを次のように設定します。
ノードのメタデータ

Autopilot ワークロードのリソース リクエスト

Autopilot ワークロードを効率的に実行するために、GKE は Pod の CPU、メモリ、エフェメラル ストレージのリクエストに特定の最小値と最大値を適用します。GKE は、これらのリソースのいずれかを明示的にリクエストしない Pod にもデフォルトのリクエストを適用します。GKE Autopilot ワークロードの最小リソース要件、最大リソース要件、デフォルトのリソース要件の具体的な値は、Pod が使用するハードウェアのタイプによって異なります。

エフェメラル ストレージの場合、エフェメラル ストレージをリクエストしない場合のデフォルト値は、すべての ComputeClass とハードウェア選択で同じです。詳細については、デフォルトのリソース リクエストをご覧ください。

次の表に、ハードウェアのタイプに応じて、Pod リクエストの CPU とメモリの要件へのリンクを示します。

表 5. Autopilot の CPU とメモリの要件
リソースの種類 最小リクエストと最大リクエスト デフォルトのリクエスト
汎用 Pod
podFamily 優先度ルール
ComputeClass の最小値と最大値の表の「汎用」行をご覧ください。 ComputeClass のデフォルトのリクエストの表の「汎用」行をご覧ください。
GPU と TPU ハードウェア アクセラレータのタイプと数量によって異なります。詳細については、アクセラレータ ComputeClass の最小値と最大値をご覧ください。 ハードウェア アクセラレータのタイプと数量によって異なります。詳細については、アクセラレータのデフォルトのリクエストをご覧ください。
特定の Compute Engine マシンタイプとマシン ファミリー
  • 最小: CPU またはメモリの最小値はありません。
  • 最大: 最大値は、Compute Engine インスタンスのリソース容量です。
任意の Compute Engine マシンタイプまたはマシン ファミリーの場合、ComputeClass のデフォルトのリクエストの表の [汎用] 行のデフォルトのリクエスト。

次のステップ