アプリケーションの実行と開発

設定がすべて完了したら、通常どおりアプリケーションをデプロイできます。または、IDE 上で継続的な開発の反復サイクルを開始して、ソースと依存関係に加えられたすべての変更を、ライブ アプリケーションに反映させることができます。このページでは、ゲストブック サンプルアプリを使用して、Kubernetes 環境での実行と開発について説明します。

実行アクションの選択

実行前

アプリケーションを実行する前に、目的の Kubernetes コンテキストにアプリをデプロイするように設定してください。これは Kubernetes 構成で実行の、[実行] タブと [デプロイの設定] セクションで指定できます。

現在のコンテキストを切り替える場合は、Kubernetes Explorer を使います。右側のサイドバー パネルか、[ツール] > [Cloud コード] > [Kubernetes] > [View Cluster Explorer] で表示できます。

イメージの再ビルドを行わずに、特定の種類のファイルの変更をすばやく取得することで、開発ループを最適化するには、ファイルの同期とホットリロードを有効にします。

Kubernetes での実行

アプリケーションの定期的な実行では、Kubernetes の実行ターゲット [Run on Kubernetes] アクションの実行アイコン を使用してイメージをビルドし、プロジェクトを Kubernetes クラスタにデプロイします。プロジェクトのソースと依存関係は監視されず、イメージとデプロイが完了すると Skaffold プロセスは終了します。

実行アクションを使用した通常のデプロイ

デプロイのカスタマイズに関する詳細については、利用可能な構成オプションをご覧ください。

Kubernetes での継続的な開発

[Develop on Kubernetes] アクションの実行アイコン の実行アクションをクリックし、Kubernetes クラスタ上で開発サイクルを開始します。開発サイクルが開始されると、Skaffold を使用して Cloud Code でプロジェクト用のイメージを作成し、タグ付けして構成済みのリポジトリに push し、kubectl を使用してプロジェクトの Kubernetes マニフェストをデプロイします。

Kubernetes クラスタの開発サイクルの開始

デプロイのカスタマイズに関する詳細については、利用可能な構成オプションをご覧ください。

デプロイしたアプリをプレビューする

  1. 目的の実行アクションの [実行] ボタンをクリックすると、受信アプリケーション ログを出力ウィンドウで表示できます。

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

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

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

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

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

  3. 新しくデプロイされたアプリケーションを表示します。

    localhost : 8080 でのゲストブック アプリの実行

ログの表示

アプリケーションの開発中および実行中に、ターミナル出力内で実行中の 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 にログを出力する

Kubernetes で開発する際の新機能の追加

「Develop on Kubernetes」で開発の反復サイクルを開始し、プロジェクトに機能を追加している場合、デプロイを停止して削除することなく、Kubernetes クラスタにこれらの変更がどのようにデプロイされるかを確認し、手動でイメージのビルドとタグ付けを行うか、クラスタを更新します。

ゲストブック アプリに従っている場合:

  1. src/main/java/cloudcode/guestbook/frontend から「FrontendController.java」ファイルを開き、この新しいエンドポイントを FrontendController クラスに追加します。

     @RequestMapping("/greeting")
     @ResponseBody
     public String greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return String.format("Hello from Kubernetes with IntelliJ, %s!", name);
     }
     ```
    
  2. 新しいアノテーションである RequestMappingResponseBody に必要なインポートを追加します。

  3. 変更を保存するか(Ctrl+S または Cmd+S キー)、またはプロジェクトをビルドします([Build] > [Build Project] メニュー)。

    コンソール ウィンドウでは、進行状況とデプロイのログを確認できます。 変更が反映されたら、新しいエンドポイント URL の localhost:8080/greeting にアクセスして更新を確認します。

    新規作成したエンドポイントのブラウザでの表示

  4. 終了したら、[停止] ボタンをクリックして継続的な開発セッションを終了します。このアクションにより、開発セッションに使用されたすべての Kubernetes リソースがプラグインによって削除されます。

シークレットの保管

API キー、パスワード、証明書などの潜在的なセンシティブ データがコードに含まれている場合は、シークレットとして保管することをおすすめします。Cloud Code を使用すると、シークレットをシークレット マネージャーに安全に保管し、必要に応じてプログラムで取得できます。Cloud Code でシークレットを作成および管理する方法の詳細については、シークレット マネージャー ガイドをご覧ください。

リソースの詳細の表示

Kubernetes リソースのステータスを追跡するには、右側のサイドパネルからアクセスできる Kubernetes エクスプローラを使用します。または、[Tools] > [Cloud Code] >[Kubernetes] > [View Cluster Explorer] からもアクセスできます。

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

Kubernetes Explorer を使用すると、クラスタ、ノード、ワークロードなどに関する情報にアクセスできるだけでなく、アクティブなコンテキストの設定、ログのストリーミングと表示リソースの説明の検索ができます。

デプロイされたリソースで kubectl describe を実行すると、Kubernetes Explorer でリソースのラベルを右クリックして [Describe] を選択することで、リソースの詳細を表示できます。

[Describe] オプションは、Kubernetes Explorer パネル内で適切なリソースを右クリックして [Describe] を選択すると使用できます。

構成

Run on Kubernetes」と「Develop on Kubernetes」の実行構成を使用する場合は、利用可能な設定を構成して Deployment をカスタマイズできます。プルダウンから [Run Configuration] を選択し、[Edit Configurations] を選択して、構成オプションにアクセスします。

  • Skaffold のオプション
    • Skaffold configuration - 「skaffold.yaml」構成ファイルを選択します。プロジェクトに「skaffold.yaml」があれば、自動的に検出されます。
    • Deployment profile - 「skaffold.yaml」ファイルに構成されている利用可能なオプションからプロファイルを選択します。
    • Environment variables - Skaffold デプロイ プロセスに渡す追加の環境変数を構成できます。Skaffold フラグは、このフィールドで使用する環境変数としても構成できます。利用可能な Skaffold の環境変数の包括的は一覧については、Skaffold CLI リファレンス ドキュメントをご覧ください。
    • Verbosity - 出力の詳細レベルを tracedebuginfowarnerrorfatal に設定できます。デフォルトの詳細レベルは warn です。
  • Kubernetes のオプション
    • Deployment Context - アプリケーションのデプロイに使用される Kubernetes コンテキストを表します。デフォルトの動作では、現在のシステム コンテキストにデプロイされます。または、[Switch context and deploy to]([Run/Debug settings] の [Deployment] セクションの下)を選択して、固定コンテキストにデプロイすることを選ぶこともできます。このオプションを使用すると、システム上の現在のコンテキストが、デプロイ時に指定したコンテキストに変更されます。Cloud Code 実行構成での Kubernetes デプロイ コンテキストの選択。
    • Delete deployments when finished - プロセスが終了すると Kubernetes Deployment を削除します。これはデフォルトの動作です。あるいは、この設定を切り替えて、デプロイが削除されないようにすることもできます。
  • コンテナ イメージ ストレージ オプション
  • ビルド設定

サポートの利用

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