GKE の組み込み ComputeClass について

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

読者は ComputeClass に精通している必要があります。

組み込み ComputeClass の概要

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

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

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

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

組み込み ComputeClass
autopilot

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

この ComputeClass は Autopilot ComputeClass です。つまり、Standard クラスタでも GKE によってノードが管理されます。この ComputeClass を使用すると、Standard クラスタで Autopilot モードのワークロードを稼働できます。

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

autopilot-spot

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

この ComputeClass は 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 またはカスタムの 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 はコンピューティング クラスの名前です。特定の 1 つのワークロードで複数の ComputeClass を選択することはできません。

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

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

クラスタにある任意の ComputeClass を、特定の名前空間でデフォルトの ComputeClass として設定できます。ComputeClass を明示的に選択していない Pod には、このデフォルト クラスが GKE によって適用されます。

たとえば、serving 名前空間で多くの汎用ウェブサーバー Pod を運用する Standard クラスタがあるとします。その名前空間のデフォルトの ComputeClass として autopilot 組み込み ComputeClass を設定すると、ワークロードの仕様を変更しなくても、Autopilot コンテナ最適化コンピューティング プラットフォーム上で、これらのウェブサーバー Pod がデフォルトで稼働します。その名前空間で別のハードウェアを必要とするワークロードは、別の ComputeClass のセレクタを追加できます。

名前空間のデフォルトの ComputeClass を設定する方法については、名前空間のデフォルトの ComputeClass を構成するをご覧ください。

次のステップ