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

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

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

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

始める前に

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

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

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

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

  1. JetBrains IDE バージョン 2019.2 以降IntelliJ Ultimate/CommunityPyCharm Professional/CommunityWebStormGoLand など)がまだインストールされていない場合は、インストールします。
  2. すべての Cloud プラットフォームで、Docker クライアント(Docker レジストリで認証)がマシンの PATH にインストールされていること(そのフォルダは PATH 内のディレクトリの下に表示されます)を確認します。

    Cloud Code は、他の必要な依存関係を自動的にインストールします。

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

  4. プラグイン マーケットプレイス([File] > [Settings] > [Plugins]、または Mac OS X の場合は [IntelliJ IDEA] > [Preferences] > [Plugins])から、「Cloud Code」プラグインを検索してインストールします。

    このとき、プラグインを有効にするために IDE の再起動を求められることがあります。

クラスタの作成

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

Google Cloud を使用する場合は、次の手順で GKE クラスタを作成できます。

  1. ターミナルまたは Cloud Console から GKE に新しいクラスタを作成します。

    • ターミナルを使用してクラスタを作成する場合は(下部のタスクバーを使用して IDE 内からアクセス可能)、実行します。

       gcloud container clusters create [CLUSTER_NAME] --zone [COMPUTE_ZONE]
      
    • Cloud Console を使用してクラスタを作成する場合は、[Google Kubernetes Engine] メニューを表示して [クラスタを作成] をクリックします。

      Google Kubernetes Engine のメニューに移動

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

  2. クラスタを作成したら、ローカルの kubeconfig ファイルにクラスタを追加する必要があります。 そのためには、次を実行します。

     gcloud container clusters get-credentials [CLUSTER_NAME]
    

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

アプリケーションの作成

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

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

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

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

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

      さらに、このフィールドにはオートコンプリート機能が用意されているため、優先する Google Cloud プロジェクトと現在アクティブなクラスタに関連付けられたイメージを簡単に見つけることができます。形式は次のようにします。

      gcr.io/{project-name}。ここで、{project-name} はクラスタを含む GCP プロジェクトの名前です。

    • 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 でアプリケーションの開発を開始するには:

  1. Kubernetes での開発用にコンテナ イメージの保存場所を定義していることを確認します。
  2. 上部のタスクバーの [Run/Debug configurations] ダイアログから [Develop on Kubernetes] 実行ターゲットを選択します。

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

    Kubernetes デプロイ実行の構成

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Kubernetes デバッガ セッション

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

アプリケーションの実行

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

  1. Kubernetes での実行用にコンテナ イメージの保存場所を定義していることを確認します。
  2. アプリケーションをデプロイする準備ができたので、上部のタスクバーの [Run/Debug configurations] ダイアログで [Run on Kubernetes] を選択して、アプリケーションをデプロイします。

    Kubernetes デプロイ実行の構成

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

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

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

  6. 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 で質問します。