Cloud Code for IntelliJ を使用して Kubernetes アプリをデプロイする

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

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

始める前に

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

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

  2. Git をインストールして、Cloud Code がサンプルのクローン作成などの Git オペレーションを実行できるようにします。

  3. Cloud Code プラグインをインストールします(まだインストールしていない場合)。

アプリケーションの作成

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

  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 クラスタ(ローカルで minikube でホストされている、または Google Kubernetes Engine クラスタなどの Cloud Platform を使用している)との関連付けが必要となります。

ローカル クラスタ

このクイックスタートで使用するクラスタがまだない場合は、Cloud Code で管理されるローカル minikube クラスタでアプリケーションを実行することを選択できます。Cloud Code は、アプリケーションを実行する minikube クラスタを起動し、デプロイが停止するとクラスタを停止します。minikube クラスタがすでに実行されている場合、Cloud Code は既存の minikube クラスタをデプロイに再利用します。

次のステップで、この Cloud Code で管理される minikube クラスタを選択し、デプロイとして設定することで、アプリケーションを開発できます。

Cloud Platform ベースのクラスタ

すでにこのクイックスタートに使用できる Kubernetes ツール(kubectl など)を使用してクラスタが機能するように構成されている場合は、Cloud Code が自動的にデプロイされます。優先クラスタが現在のコンテキストとして設定されていることを確認できるアプリケーションの開発に進むことができます。

そうではない場合は、Cloud Platform に固有の手順を使用して作成できます。GKE の場合は、クラスタの作成ガイドを利用できます。

アプリケーションの開発

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

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

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

  2. 希望する Kubernetes コンテキストが設定されていることを確認します。これは、[Run] タブと [Develop on Kubernetes] 構成で指定できます([Run] > [Edit Configurations] > [Develop on Kubernetes] からアクセスできます)。これは、[Run] タブの、[Deployment 設定] セクションにあります。

    現在のコンテキストにデプロイするか(デフォルト)、ローカルに Minikube クラスタにデプロイするか、別の使用可能なコンテキストにデプロイするかを選択できます。

    デフォルトでは、Kubernetes アプリケーションは [On demand] を選択してオンデマンド モードで実行されます。必要に応じて、[On file save] オプションを選択します。

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

    Kubernetes デプロイ実行の構成

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

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

  5. 出力ウィンドウの [ログ] タブで、受信アプリケーション ログを表示します。

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

  6. デプロイが成功すると、新しいサービス URL が利用可能であることが通知されます。[サービス URL] タブをクリックして URL を表示し、URL リンクをクリックしてブラウザを実行して実行中のアプリケーションを開きます。

    [サービス URL] タブでポート転送サービスを表示する

    別の方法としては、[イベントログ] を開き、リンクをクリックして、ブラウザで実行中のアプリケーションを開くこともできます。

    [デプロイされたリソース] ペインには、開発セッションでデプロイしたリソースが表示されます。

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

Cloud Code は、デバッグ中の変更の適用をサポートしています。

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

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

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

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

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

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

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

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

    Kubernetes デバッガ セッション

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

ログの表示

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

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

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

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

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

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

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

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

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. Google Cloud コンソールの [プロジェクト] ページに移動します。

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

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

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

次のステップ