Cloud Code for VS Code を使用して Kubernetes アプリをデプロイする
このページでは、Cloud Code をすぐに使い始める方法について説明します。
「Hello World」サンプル アプリケーションを使用して新しい Kubernetes アプリケーションを設定します。クラスタを作成し、そこでアプリを実行してコードをデバッグします。動作中のアプリケーションのログの表示や、実行中のコンテナへのターミナルの接続について取り上げます。
始める前に
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.- Git をインストールします。 サンプルをマシンにコピーするには Git が必要です。
- Docker をインストールします。サンプルコードをビルドするには、Docker が必要です。ローカル ユーザー アカウントでコンテナをビルドできることを確認します。
- Cloud Code プラグインをインストールします(まだインストールしていない場合)。
必要なロール
このクイックスタートを完了するために必要な権限を取得するには、プロジェクトに対する Kubernetes Engine 管理者 (roles/container.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
アプリケーションを作成する
コマンド パレットを開き(
Ctrl/Cmd+Shift+Pを押下するか、[表示] > [コマンド パレット] をクリック)、その後、Cloud Code: New Application を実行します。[Kubernetes Application] を選択します。
お好みの言語の Hello World アプリを選択します。
たとえば、
Node.js: Hello Worldを選択すると、スターターの Node.js Hello World アプリが作成されます。新しいアプリケーションを保存します。
アプリケーションが作成されたことを確認する通知が表示され、アプリケーションの新しいウィンドウが開きます。
GKE クラスタを作成する
標準の Google Kubernetes Engine(GKE)クラスタを作成するには、次の手順に沿って操作します。
[Cloud Code] をクリックし、[Kubernetes] セクションを展開します。
追加 [KubeConfig にクラスタを追加] をクリックしてから、[クイック選択] メニューで [Google Kubernetes Engine] をクリックします。
コンテナ API を有効にするように求められたら、[はい] を選択します。
[+ 新しい GKE クラスタを作成する] をクリックします。
クラスタタイプとして [スタンダード] を選択します。
[開く] をクリックして、Cloud Code が Google Cloud コンソールを開くのを許可します。
Google Cloud コンソールで、選択したプロジェクトが、上記で作成または選択したプロジェクトであることを確認します。
クラスタ名を
my-first-clusterに設定します。ロケーション タイプとして [Zonal] を選択し、ゾーンを
us-central1-aに設定します。[作成] をクリックします。クラスタの作成には数分かかります。
クラスタが作成されたら、[KubeConfig にクラスタを追加] をもう一度クリックし、作成したクラスタをリストから選択します。
新しいクラスタが構成に追加され、アクティブなコンテキストとして構成されます。
アプリを実行して表示する
設定がすべて完了したら、アプリケーションを実行して、公開できます。Cloud Code がファイル システムの変更を監視するため、ほぼリアルタイムでアプリを編集して再実行できます。
アプリケーションを実行するには、次の手順に沿って操作します。
Cloud Code のステータスバーで、アクティブなプロジェクト名をクリックします。

表示されたクイック選択メニューで、[Kubernetes 上で実行する] を選択します。もう一度プロンプトが表示されたら、[Run on Kubernetes] を選択します。
現在のクラスタ コンテキストを使用するか、別のクラスタ コンテキストに切り替えるかを確認します。
プロンプトが表示されたら、イメージの push 先となるイメージ レジストリを選択します。
gcr.io/PROJECT_IDを使用して新しいイメージ レジストリを作成する場合は、イメージ レジストリがクラスタと同じプロジェクト内にあることを確認してください。アプリケーションが Kubernetes で実行されたら、[開発セッション] セクションの [Run on Kubernetes] タスクの [ステータス] エントリをクリックします。ウィンドウが開き、アプリケーションの URL を含む [出力] タブが表示されます。この URL を開くには、Ctrl キー(macOS では Command キー)を押しながらアドレスをクリックします。
Google Cloud コンソールのワークロードの概要でアプリケーションを確認することもできます。実行中のアプリケーションの詳細(外部 IP アドレスやポート番号など)を表示するには、リスト内のアプリケーション名をクリックします。
トラブルシューティングのヒント
既存のクラスタを使用している場合に、クラスタをアクティブとして設定し、クラスタの認証情報を取得するには、次の手順に従います。
VS Code で、
[Cloud Code] をクリックし、[Kubernetes] セクションを展開します。
クラスタ名を右クリックし、[Set as Active Cluster] をクリックします。
アプリのデバッグ
アプリケーションをデバッグするには、次の手順に沿って操作します。
Cloud Code のステータスバーで、アクティブなプロジェクト名をクリックします。

表示されたクイック選択メニューで、[Kubernetes 上でデバッグする] を選択します。
プロンプトが表示されたら、ローカルでアプリケーションを実行およびデバッグするための認証情報を認証します。
プロンプトが表示されたら、現在のクラスタ コンテキストを使用するか、または優先するコンテキストに切り替えるかを確認します。
Cloud Code は
.vscode/launch.jsonファイルのcloudcode.kubernetes構成を使用してアプリケーションを実行し、アプリケーションにデバッガ セッションをアタッチします。Cloud Code はコンテナをビルドしてレジストリに push し、Kubernetes 構成をクラスタに適用して、ライブ アプリケーションの閲覧に使用できる IP アドレスを返します。
デバッガ セッションが接続される前に、デバッグするプログラムが存在するリモート コンテナでディレクトリを確認または入力するか、Esc キーを押してコンテナのデバッグをスキップするよう求められます。
9 行目にブレークポイントを追加するには、
src/app.jsを開き、エディタの空白をクリックします。赤い塗りつぶしの円はアクティブなブレークポイントを示し、灰色で白抜きの円は無効なブレークポイントを示します。ブレークポイントを細かく制御するには、VS Code のデバッグビューの [BREAKPOINTS] セクションを使用します。
新しいリクエストをアプリケーションに送信すると、デバッガは最初のアクティブなブレークポイントで一時停止します。
次のサンプルでは、[Variables] セクションの [Local] で、
Hello, world!のres._contentLength;の値が 13 になっていることに注意してください。
8 行目の
Hello, goodbye!に送信される文字列を編集し、[Debug on Kubernetes] アクションを再起動します。アプリを再ビルドして再デプロイしたら、
res._contentLengthの更新された値をメモします。
デバッグのセッションを開始すると、[Development sessions] ペインに構造化ロギングビューが表示されます。タスクが開始されると、タスクが回転する半円の progress_activity とともに表示されます。
タスクが成功すると、手順の横にチェックマーク check_circle が表示されます。
手順の詳細を表示するには、[開発セッション] ペインで手順をクリックします。[出力] ペインに、ロギング出力の手順が表示されます。
コンテナでターミナルを開く
コンテナでターミナルを開くには、次の手順に沿って操作します。
[Cloud Code] をクリックし、[Kubernetes] セクションを展開します。
次のセクションを開きます。
- 優先クラスタのセクション
- [Namespaces] セクション、優先する名前空間のセクション
- [Pods] セクションと、優先する Pod のセクション
[Containers] セクション

ターミナルを開くコンテナを右クリックし、[Get Terminal] をクリックします。
ターミナルが起動し、実行中のコンテナ内のシェルにアクセスできるようになります。
クリーンアップ
アプリケーションを中止すると、実行中にデプロイされたすべての Kubernetes リソースは自動で削除されます。
このクイックスタートで使用した他のリソースについてアカウントに課金されないようにするには、プロジェクトを再利用する場合、プロジェクトを削除するか、作成したクラスタを削除してください。
クラスタを削除するには:
[Cloud Code] をクリックし、[Kubernetes] エクスプローラを展開します。
- ポインタをクラスタ名に合わせて、open_in_new [ Google Cloud コンソールで開く] をクリックします。
- [削除] をクリックし、[削除] をクリックします。
プロジェクト(およびクラスタを含む関連リソース)を削除するには、次のようにします。
- Google Cloud コンソールで [リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
次のステップ
- VS Code に既存のアプリケーションをインポートして、Cloud Code で設定することを検討する。
- Cloud Code の YAML 編集サポートを使用して、より高度な Google Cloud Kubernetes 構成に取り組む。
- Cloud Code が提供する言語別のデバッグ サポートを確認する。
- ファイルの同期とホットリロードを使用して開発を高速化する。
- GKE クラスタを作成して構成する
- 限定公開クラスタを構成する
- 関連する設定を構成して、Cloud Code のエクスペリエンスをカスタマイズする。
- ARM64、AMD64、または混合アーキテクチャの GKE クラスタにアプリケーションをデプロイする。