GKE の組み込み ComputeClass について


このページでは、Google Kubernetes Engine(GKE)がクラスタにインストールする ComputeClass について説明します。各組み込み ComputeClass の名前、可用性、ノード構成について説明します。このページは、使用可能な ComputeClass と、特定のワークロードに最適なクラスについて十分な情報を得て選択したいプラットフォーム エンジニアとアプリ オペレーターを対象としています。

ComputeClasses に精通している必要があります。

組み込み ComputeClass の概要

多くの GKE ワークロードは、ウェブサーバーや小規模なバッチジョブなど、特殊なハードウェアを必要としない汎用ワークロードです。このようなワークロードでは、ノード インフラストラクチャと自動スケーリング構成の手動管理に関連するオーバーヘッドを削減することが優先されます。

GKE には、Standard クラスタで Autopilot ワークロードを実行する、フォールト トレラントな汎用ワークロードを Spot VM に配置するなど、さまざまなユースケースで使用できる組み込みの ComputeClass があります。特定のハードウェア(GPU など)や特定のノード設定(Linux sysctl フラグなど)を必要としないワークロードには、組み込みの ComputeClass を使用します。ワークロードでより特殊なハードウェアが必要な場合は、カスタム ComputeClass を使用します。

GKE で使用可能な組み込みの ComputeClass

次の表に、GKE で使用可能な組み込みの ComputeClass を示します。

組み込み ComputeClass
autopilot

Autopilot のコンテナ最適化コンピューティング プラットフォームを使用するオンデマンド ノードを作成します。この ComputeClass は、すべての GKE バージョンの Autopilot クラスタのデフォルトですが、特定の GKE バージョンでは明示的に選択できます。

これは Autopilot ComputeClass です。つまり、Standard クラスタでも GKE がノードを管理します。この ComputeClass を使用すると、Standard クラスタで Autopilot モードのワークロードを実行できます。

Rapid リリース チャンネルに登録され、GKE バージョン 1.33.1-gke.1107000 以降を実行している Autopilot クラスタと Standard クラスタで使用できます。

autopilot-spot

Autopilot コンテナ最適化コンピューティング プラットフォームを使用する Spot VM を作成します。この ComputeClass は、Pod 仕様で Spot VM を明示的に選択する Autopilot クラスタ内の Pod にデフォルトで適用されます。

これは Autopilot ComputeClass です。つまり、Standard クラスタでも GKE がノードを管理します。この ComputeClass を使用すると、Standard クラスタで Autopilot モードのワークロードを実行できます。

Rapid リリース チャンネルに登録され、GKE バージョン 1.33.1-gke.1107000 以降を実行している Autopilot クラスタと Standard クラスタで使用できます。

料金

Autopilot の料金は、Pod がリクエストする ComputeClass によって異なります。詳細については、Google Kubernetes Engine の料金をご覧ください。

ワークロードでの ComputeClass の組み込み選択

GKE ワークロードをデプロイするときに組み込みまたはカスタムの ComputeClass を選択するには、次の例のように、ワークロード マニフェストで cloud.google.com/compute-class ラベルを選択します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloweb
  labels:
    app: hello
spec:
  selector:
    matchLabels:
      app: hello
  template:
    metadata:
      labels:
        app: hello
    spec:
      nodeSelector:
        # Replace with the name of a compute class
        cloud.google.com/compute-class: COMPUTE_CLASS 
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: "250m"
            memory: "4Gi"

この例では、COMPUTE_CLASS はコンピューティング クラスの名前です。特定のワークロードで複数の ComputeClass を選択することはできません。

ComputeClass を選択するワークロードをデプロイすると、GKE はその ComputeClass のプロパティを使用して、Pod を実行する新しいノードを作成します。たとえば、ワークロードで autopilot 組み込み ComputeClass を選択すると、GKE はそれらの Pod を Autopilot モードで実行します。

組み込み ComputeClass のデフォルトの適用

クラスタ内の任意の ComputeClass を、特定の Namespace のデフォルトの ComputeClass として設定できます。GKE は、ComputeClass を明示的に選択していない Pod に、このデフォルト クラスを適用します。

たとえば、serving Namespace で多くの汎用ウェブサーバー Pod を実行する Standard クラスタについて考えてみましょう。autopilot 組み込み ComputeClass を Namespace のデフォルトとして設定すると、ワークロードの仕様を変更しなくても、ウェブサーバー Pod はデフォルトで Autopilot コンテナ最適化コンピューティング プラットフォームで実行されます。異なるハードウェアを必要とするその Namespace 内のワークロードは、別の ComputeClass のセレクタを追加できます。

Namespace で ComputeClass をデフォルトとして設定する方法については、Namespace のデフォルトの ComputeClass を構成するをご覧ください。

次のステップ