クイックスタート: Cloud Code を使用した Kubernetes アプリの実行

このページでは、Cloud Code の使用を開始する方法について説明します。

このクイックスタートでは、スターターの「Hello World」テンプレートを使用して新しい Kubernetes アプリケーションを設定します。クラスタを作成してアプリをこのクラスタで実行し、アプリを繰り返しビルドして反復開発を行い、実行中のコードをデバッグします。ライブ アプリケーションからのストリーミング ログを観察して確認します。

このクイックスタートを Apple M シリーズのシリコンで実行する場合、アプリケーションのビルドには Cloud Build が使用されるため、料金が発生する場合があります。詳細については、Apple M シリーズ シリコンに対する Cloud Code のサポートをご覧ください。

始める前に

Google Cloud を使用する場合は、Google Cloud プロジェクトを作成または選択し、プロジェクトで課金を有効にする必要があります。

あるいは、他の Cloud Platform でホストされているクラスタ、または minikubeDocker Desktop などのツールを備えたローカル Kubernetes クラスタを使用できます。

プラグインのインストール

Cloud Code プラグインをインストールするには、以下の手順を行います。

  1. JetBrains IDE バージョン 2020.2 以降IntelliJ Ultimate/CommunityPyCharm Professional/CommunityWebStormGoLand など)がまだインストールされていない場合は、インストールします。

  2. すべての Cloud Platform で、Docker クライアント(Docker レジストリで認証済み)がマシンの PATH にインストールされていることを確認します(そのフォルダは PATH 内のディレクトリの下に表示されます)。Docker がインストールされているかどうかを確認するには、docker -v を実行します。

    Cloud Code は、kubectl、Skaffold、Cloud SDK の依存関係を IDE に自動的にインストールして管理します。

  3. IntelliJ IDEA(またはサポートされている JetBrains IDE)を開きます。

  4. プラグイン マーケットプレイスから、Cloud Code プラグインを検索してインストールします。

    プラグイン マーケットプレイスには、次のメニューからアクセスできます。

    • Windows or Linux: File > Settings > Plugins
    • macOS: IntelliJ IDEA > Preferences > Plugins

    Apple M シリーズのシリコンで Cloud Code を実行している場合は、Rosetta 2 をインストールするように求められます。これにより、Cloud Code で kubectl をマネージド依存関係としてインストールできます。Rosetta 2 をインストールしない場合は、マネージド依存関係を無効にし([IntelliJ IDEA] > [設定] > [ツール] > [Cloud Code] > [依存関係])、依存関係のカスタム バージョンで説明されている手順に沿って、kubectl の独自のバージョンの ARM をインストールします。

    必要に応じて、プラグインを有効にするための IDE の再起動を求められます。

アプリケーションの作成

既存のサンプルを使用して新しいアプリケーションを作成するには:

  1. IDE で [File] > [New Project] の順に開き、[Cloud Code: Kubernetes] を選択します。

  2. スターター アプリケーションのリストから Hello World テンプレートを選択します。使用可能なテンプレートのリスト: Python、Go、NodeJS、Java の「Hello World」とゲストブックのアプリケーション。

  3. プロジェクトの名前を選択します。

    [完了] をクリックすると、選択したテンプレートのクローンが Cloud Code に作成されて、先ほど作成したプロジェクトが表示され使用できるようになります。

    Java テンプレートの場合、pom.xml を同期するために必要な Maven プロジェクトをインポートするよう求められます。[Add as Maven project] をクリックし、[Import Changes] をクリックします。

クラスタの作成

このクイックスタートに使用できる Kubernetes ツール(kubectl など)で動作するようにクラスタがすでに構成されている場合は、アプリケーションの開発に進むことができます。

アプリケーションを開発するには、Kubernetes クラスタ(ローカルで minikube でホストされている、または Google Kubernetes Engine(GKE)クラスタなどの Cloud Platform を使用している)との関連付けが必要となります。このクイックスタートで使用するクラスタがまだない場合は、Cloud Platform 独自の手順でクラスタを作成します。

Google Cloud を使用するように選択した場合は、Cloud Code ターミナルまたは Google Cloud Console を使用して GKE クラスタを作成できます。

Cloud Code ターミナルの使用

  1. IDE でプロジェクト ウィンドウを開いた状態で、IDE の下部にあるサイドバーまたは [ツール] メニューの [ツール] > [Cloud Code] > [ツール] > [Cloud Code ターミナル] を使用して、Cloud Code ターミナルを開きます。

  2. まだ設定していない場合は、デフォルトのプロジェクトを設定します。

    gcloud config set project PROJECT_ID
    
  3. クラスタを作成するには、次のコマンドを実行します。

    gcloud container clusters create CLUSTER_NAME --zone=COMPUTE_ZONE
    

    たとえば、ゾーン us-central1-a で test-cluster という名前のクラスタを作成するには、gcloud container clusters create test-cluster --zone=us-central1-a を実行します。

    クラスタのカスタマイズの詳細については、コマンドのリファレンス ドキュメントをご覧ください。

  4. クラスタを作成したら、次のコマンドを実行して、ローカルの kubeconfig ファイルにクラスタを追加します。

    gcloud container clusters get-credentials CLUSTER_NAME --zone=COMPUTE_ZONE
    

    これにより、指定したクラスタがアクティブなコンテキストに設定されます。

Cloud Console の使用

  1. Google Kubernetes Engine メニューを開きます。

    Google Kubernetes Engine メニューを開く

  2. [作成] をクリックします。

  3. 希望するクラスタタイプ(Standard または Autopilot)を選択し、[構成] をクリックします。

  4. 好みのクラスタ名とロケーションを選択します。

  5. [作成] をクリックしてクラスタの作成を終了します。

    フィールドのカスタマイズの詳細については、ゾーンクラスタの作成をご覧ください。

  6. クラスタを作成した後、クラスタをローカルの kubeconfig ファイルに追加し、次のコマンドを実行してクラスタをアクティブ コンテキストに設定します。

    gcloud container clusters get-credentials CLUSTER_NAME --zone=COMPUTE_ZONE
    

アプリケーションの開発

Kubernetes でアプリケーションの開発を開始するには:

  1. Cloud Platform にホストされているクラスタで実行している場合は、必ず Kubernetes での開発コンテナ イメージの保存場所を定義してください。

    IDE で Google Cloud にログインし、デフォルト プロジェクトが定義されている場合、Cloud Code はデフォルトのコンテナ イメージ リポジトリ(gcr.io/{project_id})を自動的に使用します。ここで、{project_id} はデフォルト プロジェクトを参照します。

  2. ナビゲーション バーの [Run/Debug configurations] セレクタから [Develop on Kubernetes] 実行ターゲットを選択します。

    これにより、コードの変更が自動的にビルドされ、push され、アプリケーションの新しいバージョンにデプロイされます。

    Kubernetes デプロイ実行の構成

  3. Kubernetes クラスタ上で開発サイクルを開始するには、[Develop on Kubernetes]アクションの実行アイコン の実行アクションをクリックします。

  4. 出力ウィンドウで、受信アプリケーション ログを表示します。

    デプロイが開始されると、デプロイされたアプリケーションの転送ポートのリストが表示されます。

    Kubernetes アプリケーションからのストリームログの表示

  5. デプロイが成功すると、ローカル URL でサービスにアクセスできるようになったことを知らせるメッセージが表示されます。[表示] をクリックしてイベントログを開き、リンクをクリックしてアプリケーションが実行中のブラウザを開きます。

    ライブアプリにアクセスするための URL の通知がイベントログに記録されるようになりました

    イベントログを使用したポート転送サービスの検索

アプリケーションのデバッグ

アプリケーションをデバッグするには、次の手順を行います。

  1. [Develop on Kubernetes] のデバッグ アクションアクションの実行アイコンをクリックし、Kubernetes クラスタ上でデバッグモードで開発サイクルを開始します。

    Kubernetes クラスタの開発サイクルをデバッグモードで開始する

  2. Cloud Code はデバッグ セッションをアタッチします。成功すると、デバッグツール ウィンドウが開き、[Console] タブで接続が確認されます。

    これで、ライブ Kubernetes クラスタに対してデバッグできるようになりました。

  3. ブレークポイントを追加するコードの実行可能行の左横(gutter)をクリックします。

    赤い塗りつぶしの円はアクティブなブレークポイントを示し、赤で囲まれた白抜きの円は無効なブレークポイントを示します。

  4. アプリケーションに新しいリクエストを送信すると、設定した行でコードが一時停止します。

    Kubernetes デバッガ セッション

  5. デバッグ セッションを終了するには、Develop on Kubernetes 実行構成の停止アイコンをクリックします。

アプリケーションの実行

Kubernetes でアプリケーションを実行するには:

  1. Kubernetes での実行用にコンテナ イメージの保存場所を定義していることを確認します。

    IDE で Google Cloud にログインし、デフォルト プロジェクトが定義されている場合、Cloud Code はデフォルトのコンテナ イメージ リポジトリ(gcr.io/{project_id})を自動的に使用します。ここで、{project_id} はデフォルト プロジェクトを参照します。

  2. アプリを目的の Kubernetes コンテキストにデプロイするための設定を完了していることを確認します。

    ナビゲーション バーの [Run/Debug configuration] セレクタから [Edit Configurations...] を選択します。[Run on Kubernetes] 構成の [実行] タブで、デプロイの設定を指定できます。

  3. アプリケーションをデプロイする準備ができたら、ナビゲーション バーの [Run/Debug configuration] セレクタから [Run on Kubernetes] を選択して、アプリケーションをデプロイします。

    Kubernetes デプロイ実行の構成

  4. [Run on Kubernetes] アクションの実行アイコン をクリックします。

  5. Kubernetes での開発と同様に、受信アプリケーション ログを出力ウィンドウで表示できます。

  6. デプロイが成功すると、ローカル URL でサービスにアクセスできるようになったことを知らせるメッセージが表示されます。[表示] をクリックしてイベントログを開きます。

    イベントログで、アプリケーションが提供されているポートを見つけます。アプリケーションが実行中のブラウザを開くには、リンクをクリックします。

  7. http://localhost:{port-number} にアクセスして、新しくデプロイしたアプリケーションを使用します。

    「Hello World!」と表示する http://localhost:{port-number} のアプリケーション

ログの表示

アプリケーションの開発中および実行中に、ターミナル出力で実行中の Pod から出力されるログのライブ ストリームを表示できます。また、Kubernetes Explorer に移動すると、特定の Pod のログを表示することもできます。

特定の Pod のログを表示する手順は次のとおりです。

  1. Kubernetes Explorer に移動します。右側のサイドパネルからアクセスできます。また、[Tools] > [Cloud Code] > [Kubernetes] > [View Cluster Explorer] でアクセスすることもできます。

    右側のタスクバーのタブを使用して Kubernetes Explorer パネルを開く

  2. ログを表示する Pod を選択します。

  3. Pod を右クリックして [ログのストリーム] を選択します。また、Pod で実行されている個々のコンテナのログをストリーミングすることもできます。

    これにより、Kubernetes Explorer Console にログが出力されます。

    右クリック メニューを使用してポッドのログをストリーミングし、Kubernetes Explorer Console にログを出力する

クリーンアップ

このクイックスタートで使用したリソースについてアカウントに課金されないようにするには、作成したクラスタとプロジェクトを削除してください。

Google Cloud を使用していて、プロジェクト(および GKE クラスタなどの関連するリソース)を削除する場合:

  1. Cloud Console の [プロジェクト] ページに移動します。

    プロジェクト ページに移動

  2. このクイックスタート用に作成したプロジェクトを選択し、[削除] をクリックします。

    プロジェクトがシャットダウンし、プロジェクト削除のスケジュールが決定されます。

次のステップ

サポートの利用

フィードバックを送信するには、GitHub で問題を報告するか、Stack Overflow で質問します。