ワークロードのデプロイ


クラスタのライフサイクルガイドで説明されているように、GKE ユーザーは通常、クラスタ管理には Google Cloud ツールを使用し、アプリケーションのデプロイなどのクラスタ内部タスクには kubectl などの Kubernetes ツールを使用します。つまり、別の Kubernetes 実装でワークロードのデプロイに習熟している場合、GKE でのワークロードのデプロイにも同じワークフローが多数あります(Kubernetes でのワークロードのデプロイに習熟していない場合は、デプロイと、Kubernetes の学習を開始するにある他のリソースをご覧ください)。

また、GKE には、オブザーバビリティ ツール、ステートフル アプリケーション用のフルマネージド データベース オプション、AI/ML ワークロードなどの特殊なワークロード タイプ用に用意された特定のハードウェア オプションなど、ワークロードのデプロイと管理のための追加機能もあります。

このページでは、GKE クラスタにワークロードをデプロイしようとしているデベロッパーおよび管理者向けの概要と、詳細を記したドキュメントへのリンクを提供しています。より具体的なガイドやチュートリアルについては、GKE の基本ドキュメントのデプロイ関連セクションをご覧ください。

このページを読む前に、次のことを理解しておく必要があります。

必要なロール

プロジェクト オーナーでない場合、ワークロードをデプロイするには、少なくとも次の Identity and Access Management(IAM)ロールが必要です。

  • Kubernetes Engine クラスタ閲覧者(roles/container.clusterViewer): container.clusters.get 権限が付与されます。この権限は、Google Cloud プロジェクト内のクラスタの認証に必要です。このロールでは、ユーザーがこれらのクラスタ内でアクションを実行することは許可されません。クラスタで他のアクションを実行する権限は、クラスタ管理者が、IAM または Kubernetes RBAC を使用して付与できます。

    このロールに含まれる権限の詳細と、読み取り / 書き込み権限を持つロールの付与方法については、IAM のドキュメントで Kubernetes Engine ロールの説明をご覧ください。

GKE でのアクセス制御の仕組みについては、アクセス制御で詳細をご覧ください。

ステートレス アプリケーション

ステートレス アプリケーションは、データやアプリケーションの状態をクラスタや永続ストレージに保存しないアプリケーションです。ステートレス アプリケーションは、Google Cloud コンソールの [ワークロード] メニューから直接デプロイできます。また、Kubernetes API を使用してデプロイすることもできます。GKE にステートレス Linux アプリケーションをデプロイする方法については、ステートレス Linux アプリケーションのデプロイをご覧ください。必要に応じて、ステートレスな Windows Server アプリケーションをデプロイする方法も学習できます。

ステートフル アプリケーションとストレージ

Pod の存続期間を超えて存在するデータを保存する必要があるアプリケーションは、ステートフル アプリケーションと呼ばれます。管理者は、Kubernetes の PersistentVolume オブジェクトを使用してこのストレージをプロビジョニングできます。GKE では、PersistentVolume ストレージは Compute Engine ディスクによってバックアップされます。GKE にシンプルなステートフル アプリケーションをデプロイする方法については、ステートフル アプリケーションのデプロイをご覧ください。

ステートフル アプリケーションのデータを、クラスタの存続期間に関連付けられたストレージではなくデータベースに保持する必要がある場合は、GKE には次のオプションがあります。

  • フルマネージド データベース: Cloud SQLSpanner などのマネージド データベースは、運用上のオーバーヘッドの削減に有効で、Google Cloud インフラストラクチャ用に最適化されています。マネージド データベースの保守や運用は、Kubernetes に直接デプロイするデータベースよりも簡単です。
  • Kubernetes アプリケーション: データベース インスタンス(MySQLPostgreSQL など)を GKE クラスタでデプロイして実行できます。

GKE のデータ オプションの詳細については、GKE 上のデータGKE でのデータベース デプロイを計画するをご覧ください。

AI / ML ワークロード

GKE は、AI/ML ワークロードのデプロイを豊富にサポートしています。これには、専門のハードウェアでのモデルのトレーニングとサービング、分散コンピューティングとデータ処理フレームワークとの柔軟な統合が含まれます。詳しくは、次のガイドをご覧ください。

  • GKE の TPU についてでは、GKE で AI / ML ワークロードに Cloud TPU アクセラレータを使用する方法を説明しています。GKE は、TPU VM の作成、構成、削除など、TPU ノードとノードプールのライフサイクル管理全体をサポートしています。TPU ワークロードは、Standard クラスタと Autopilot クラスタの両方にデプロイできます。
  • GKE の GPU についてでは、GKE ワークロードで GPU ハードウェアをリクエストして使用する方法を説明しています。

その他の特別な要件があるワークロード

GKE には、特定のノード アーキテクチャを必要とするアプリケーションや、Pod を同じノードまたは別のノードで実行する必要があるアプリケーションなど、他の特別な要件があるワークロードのデプロイに役立つ機能とガイドが用意されています。これらのデプロイの詳細については、次のガイドをご覧ください。

  • Autopilot のコンピューティング クラスでは、Autopilot クラスタにアプリケーションをデプロイするときに、Pod のスケジューリングに特定のコンピューティング アーキテクチャを選択する方法について説明します。Standard クラスタの場合、クラスタの作成時にノードに使用するマシン ファミリーを直接指定できます。
  • カスタム コンピューティング クラスについてでは、Autopilot クラスタと Standard クラスタの両方でアプリケーションのハードウェア オプションを指定する際に、より柔軟に対応できるようにカスタム コンピューティング クラスを作成する方法について説明します。
  • GKE でワークロードの分離を構成するでは、アプリケーションの Pod が同じ基盤となるマシンまたは異なる基盤となるマシンで実行されるようにする方法について説明します。
  • GKE Sandbox では、不明なワークロードや信頼できないワークロードをデプロイするときに、サンドボックス Pod を使用してホストカーネルを保護する方法について説明します。

ワークロードのモニタリング

GKE には、Google Cloud コンソールにおけるワークロードの状態と指標の大まかな情報に加えて、より詳細な指標、ログ、アラートなど、ワークロードとその状態をモニタリングするためのさまざまな機能が用意されています。

ワークロードのデプロイの管理

ワークロードのデプロイ用に継続的インテグレーションと継続的デリバリー(CI / CD)パイプラインを設定する場合は、GKE への継続的インテグレーションと継続的デリバリーのベスト プラクティスをご覧ください。GKE 固有の CI / CD ベスト プラクティスとガイドラインをご確認いただけます。また、特定のツールとプロダクトを使用して CI / CD パイプラインを設定するためのチュートリアルもご覧ください。

次のステップ