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

これで準備はすべて整い、アプリケーションの通常実行を決定するか、または IDE で開発のイテレーション サイクルを開始して、ソースと依存関係に加えた変更をライブ アプリケーションに反映できます。 このページでは、ゲストブック サンプルアプリを使用して、Kubernetes での実行と開発について説明します。

実行アクションの選択

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 リソースがプラグインによって削除されます。

リソースの詳細の表示

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