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

Cloud Code for IntelliJ を使用して最初の Kubernetes アプリケーションをデプロイする方法について説明します。

このクイックスタートでは、スターターの Hello World テンプレートを使用して新しい Kubernetes アプリケーションを設定し、クラスタでアプリを実行します。継続的な再構築を構成してアプリを繰り返し開発し、実行中のコードをデバッグして、ライブ アプリケーションからストリーミング ログを表示します。

このガイドでは Google Cloud の使用をおすすめしますが、代わりに minikubeDocker Desktop などのツールを使用して、ローカル クラスタで Cloud Code を使用することもできます。ただし、ライブ GKE クラスタの作成や統合された継続的デリバリーなどの機能は、Google Cloud プロジェクトで最適に利用できます。

始める前に

ローカル クラスタとクラウドホスト型クラスタのどちらを使用する場合でも、このクイックスタートを完了するには、次の手順を行います。

  1. Git をインストールします。 コードサンプルをマシンにコピーするには、Git が必要です。
  2. Docker をインストールします。サンプルコードをビルドするには、Docker が必要です。ローカル ユーザー アカウントがコンテナをビルドできることを確認します。
  3. Cloud Code プラグインをインストールします(まだインストールしていない場合)。

Google Cloudを使用してこのクイックスタートを完了する手順は次のとおりです。

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Google Kubernetes Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Google Kubernetes Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  10. 必要なロール

    Google Cloudを使用してこのクイックスタートを完了するために必要な権限を取得するには、プロジェクトに対する Kubernetes Engine 管理者 roles/container.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

アプリケーションを作成する

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

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

次のステップ