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

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

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

Cloud Code で新しい Hello World アプリを作成する

始める前に

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

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

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

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

  1. JetBrains IDE バージョン 2020.1 以降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 または Linux の場合: [File] > [Settings] > [Plugins]
    • macOS の場合: [IntelliJ IDEA] > [Preferences] > [Plugins]

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

アプリケーションの作成

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

  1. IDE で [File] > [New Project] の順に開き、[Cloud Code: Kubernetes] を選択します。
  2. スターター アプリケーションのリストから「Hello World」テンプレートを選択します。使用可能なテンプレートのリスト: Python、Go、NodeJS、Java の「Hello World」とゲストブックのアプリケーション。
  3. IntelliJ IDEA を使用している場合は、コンテナ イメージの保存場所を指定するように求められます。

    gcr.io/{gcp-project-name} または docker.io/{account} の形式を使用して、フィールド内にデフォルトのイメージ リポジトリを指定します。

    選択したコンテナ レジストリに応じて、適切な形式を選択します。

    • GKE を使用している場合は、Google Container Repository にイメージを保存できます。

      さらに、このフィールドにはオートコンプリート機能が用意されているため、優先する Google Cloud プロジェクト(および、ある場合は現在アクティブなクラスタ)に関連付けられたイメージを簡単に見つけることができます。クラスタがない場合や、このクイックスタートで新しいクラスタを使用する場合は、このクイックスタートの次のセクションでクラスタを作成します。

      形式は次のようにします。

      gcr.io/{project-name}。ここで、{project-name} は、(クラスタが作成されているか、作成予定の)Google Cloud プロジェクトの名前です。

    • Docker Hub にイメージを保存することを選択する場合は(非公開の Docker Hub リポジトリを使用している場合は適切に認証されるようにしてください)、次の形式を使用します。

      docker.io/{account}。ここで、{account} は Docker Hub アカウントの名前です。

    • minikube や Docker デスクトップのようなローカル クラスタで実行している場合は、この手順をスキップして [次へ] をクリックします。

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

    [完了] をクリックすると、Cloud Code によって選択したテンプレートのクローンが作成され、使用するために新しく作成したプロジェクトが開かれます。

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

      管理対象外の pom.xml 通知

      また、必要な Maven プロジェクトをインポートするには、[Import Changes] をクリックします。

      Maven の変更のインポートに関する通知

クラスタの作成

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

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

Google Cloud を使用する場合、Cloud Code ターミナルまたは 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. [作成] をクリックしてクラスタの作成を終了します。

    フィールドのカスタマイズの詳細については、GKE ガイドをご覧ください。

  6. クラスタを作成した後、以下を実行してクラスタをローカルの kubeconfig ファイルに追加します。

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

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

アプリケーションの開発

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

  1. Cloud Platform でホストされているクラスタで実行している場合は、Kubernetes での開発用にコンテナ イメージの保存場所を定義していることを確認します。
  2. ナビゲーション バーの [Run/Debug configurations] セレクタから [Develop on Kubernetes] 実行ターゲットを選択します。

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

    Kubernetes デプロイ実行の構成

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

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

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

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

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

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

    イベントログで、リンクをクリックしてアプリケーションが実行中のブラウザを開きます。

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

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

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

  1. Cloud Platform でホストされているクラスタで実行している場合は、Kubernetes での開発用にコンテナ イメージの保存場所を定義していることを確認します。
  2. [Develop on Kubernetes] のデバッグ アクションアクションの実行アイコンをクリックし、Kubernetes クラスタ上でデバッグモードで開発サイクルを開始します。

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

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

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

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

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

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

    Kubernetes デバッガ セッション

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

アプリケーションの実行

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

  1. Kubernetes での実行用にコンテナ イメージの保存場所を定義していることを確認します。
  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 にログが出力されます。

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

クリーンアップ

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

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

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

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

  • このクイックスタート用に作成したプロジェクトを選択し、横にあるゴミ箱アイコンをクリックして削除します。

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

次のステップ

サポートの利用

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