Cloud Code for IntelliJ を使用して Kubernetes アプリをデプロイする
このページでは、Cloud Code の使用を開始する方法について説明します。
このクイックスタートでは、スターターの「Hello World」テンプレートを使用して新しい Kubernetes アプリケーションを設定します。選択したクラスタでアプリを実行し、アプリを繰り返しビルドして反復開発を行い、実行中のコードをデバッグします。ライブ アプリケーションからストリーミングされるログを観察して確認します。
始める前に
Google Cloud を使用する場合は、Google Cloud プロジェクトを作成または選択し、プロジェクトで課金を有効にする必要があります。
あるいは、他の Cloud Platform でホストされているクラスタ、または minikube や Docker Desktop などのツールを備えたローカル Kubernetes クラスタを使用できます。
Git をインストールして、Cloud Code がサンプルのクローン作成などの Git オペレーションを実行できるようにします。
Cloud Code プラグインをインストールします(まだインストールしていない場合)。
アプリケーションの作成
Cloud Code には、すぐに使用を開始できるようにコードサンプル テンプレートが用意されています。既存のサンプルを使用して新しいアプリケーションを作成するには:
IDE で [File] > [New Project] の順に開き、[Cloud Code: Kubernetes] を選択します。
スターター アプリケーションのリストから Hello World テンプレートを選択します。
プロジェクトの名前を選択します。
[完了] をクリックすると、選択したテンプレートのクローンが 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 でアプリケーションの開発を開始するには:
Cloud Platform にホストされているクラスタで実行している場合は、必ず Kubernetes での開発のコンテナ イメージの保存場所を定義してください。
IDE で Google Cloud にログインし、デフォルト プロジェクトが定義されている場合、Cloud Code はデフォルトのコンテナ イメージ リポジトリ(gcr.io/{project_id})を自動的に使用します。ここで、{project_id} はデフォルト プロジェクトを参照します。
希望する Kubernetes コンテキストが設定されていることを確認します。これは、[Run] タブと [Develop on Kubernetes] 構成で指定できます([Run] > [Edit Configurations] > [Develop on Kubernetes] からアクセスできます)。これは、[Run] タブの、[Deployment 設定] セクションにあります。
現在のコンテキストにデプロイするか(デフォルト)、ローカルに Minikube クラスタにデプロイするか、別の使用可能なコンテキストにデプロイするかを選択できます。
デフォルトでは、Kubernetes アプリケーションは [On demand] を選択してオンデマンド モードで実行されます。必要に応じて、[On file save] オプションを選択します。
ナビゲーション バーの [Run/Debug configurations] セレクタから [Develop on Kubernetes] 実行ターゲットを選択します。
これにより、コードの変更が自動的にビルドされ、push され、アプリケーションの新しいバージョンにデプロイされます。
Kubernetes クラスタ上で開発サイクルを開始するには、[Develop on Kubernetes] の実行アクションをクリックします。
出力ウィンドウの [ログ] タブで、受信アプリケーション ログを表示します。
デプロイが開始されると、デプロイされたアプリケーションの転送ポートのリストが表示されます。
デプロイが成功すると、新しいサービス URL が利用可能であることが通知されます。[サービス URL] タブをクリックして URL を表示し、URL リンクをクリックしてブラウザを実行して実行中のアプリケーションを開きます。
別の方法としては、[イベントログ] を開き、リンクをクリックして、ブラウザで実行中のアプリケーションを開くこともできます。
[デプロイされたリソース] ペインには、開発セッションでデプロイしたリソースが表示されます。
アプリケーションのデバッグ
Cloud Code は、デバッグ中の変更の適用をサポートしています。
アプリケーションをデバッグするには、次の手順を行います。
[Develop on Kubernetes] のデバッグ アクションをクリックし、Kubernetes クラスタ上のデバッグモードで開発サイクルを開始します。
Cloud Code はデバッグ セッションをアタッチします。成功すると、デバッグツール ウィンドウが開き、[Console] タブで接続が確認されます。
これで、ライブ Kubernetes クラスタに対してデバッグできるようになりました。
ブレークポイントを追加するコードの実行可能行の左横(gutter)をクリックします。
赤い塗りつぶしの円はアクティブなブレークポイントを示し、赤で囲まれた白抜きの円は無効なブレークポイントを示します。
アプリケーションに新しいリクエストを送信すると、設定した行でコードが一時停止します。
デバッグ セッションを終了するには、
Develop on Kubernetes
実行構成の停止アイコンをクリックします。
ログの表示
アプリケーションの開発中および実行中に、ターミナル出力内で実行中の Pod から出力されるログのライブ ストリームを表示できます。また、Kubernetes Explorer に移動すると、特定の Pod のログを表示することもできます。
特定の Pod のログを表示する手順は次のとおりです。
Kubernetes Explorer に移動します。右側のサイドパネルからアクセスできます。また、[Tools] > [Cloud Code] > [Kubernetes] > [View Cluster Explorer] でアクセスすることもできます。
ログを表示する Pod を選択します。
Pod を右クリックして [ログのストリーム] を選択します。また、ポッドで実行されている個々のコンテナのログをストリーミングすることもできます。
これにより、Kubernetes Explorer Console にログが出力されます。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。
Google Cloud コンソールの [プロジェクト] ページに移動します。
このクイックスタート用に作成したプロジェクトを選択し、横にあるゴミ箱アイコンをクリックして削除します。
プロジェクトがシャットダウンし、プロジェクト削除のスケジュールが決定されます。
次のステップ
- 既存のアプリケーション(Kubernetes または App Engine アプリ)を IDE にインポートし、Cloud Code で設定することを検討してください。
- Kubernetes アプリケーションの開発についてさらに詳しく説明します。
- Cloud Code の YAML 編集サポートを使用して、より高度な Google Cloud と Kubernetes の構成に取り組む。
- Kubernetes Explorer を使用して、Kubernetes リソースを細かく分析し管理する。
- ARM64、AMD64、または混合アーキテクチャの GKE クラスタにアプリケーションをデプロイする。
- Cloud Code を使用して App Engine アプリの作成、実行、デバッグ、デプロイを行います。
- 使いやすい IDE から Cloud APIs とクライアント ライブラリを管理します。
- IDE 内の Cloud Storage コンテンツを調べます。
- Cloud Code を使って Cloud Source Repositories に新しいプロジェクトを追加し、既存のプロジェクトをチェックアウトします。