Cloud Code for VS Code を使用して Kubernetes アプリをデプロイする
このページでは、Cloud Code をすぐに使い始める方法について説明します。
「Hello World」サンプル アプリケーションを使用して新しい Kubernetes アプリケーションを設定します。クラスタを作成し、そこでアプリを実行してコードをデバッグします。動作中のアプリケーションのログの表示や、実行中のコンテナへのターミナルの接続について取り上げます。
準備
- 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.
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Enable the Google Kubernetes Engine API.
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Enable the Google Kubernetes Engine API.
- Git をインストールします。 サンプルをマシンにコピーするには Git が必要です。
- Cloud Code プラグインをインストールします(まだインストールしていない場合)。
アプリケーションの作成
コマンド パレットを開き(
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] をクリックします。
container.googleapis.com
を有効にするように求められたら、[Yes] を選択します。[+ 新しい GKE クラスタを作成する] をクリックします。
クラスタタイプとして [スタンダード] を選択します。
[開く] をクリックして、Cloud Code が Google Cloud コンソールを開くようにします。
Google Cloud コンソールで、作成したプロジェクトを使用して、ゾーンを
us-central1-a
に設定し、クラスタ名をmy-first-cluster
に設定します。[CREATE] をクリックします。クラスタの作成には数分かかります。
クラスタが作成されたら、[クイックピック] メニューで、更新 [更新] をクリックします。
新しいクラスタの名前がリストに表示されたら、クラスタ名をクリックします。新しいクラスタが構成に追加され、アクティブなコンテキストとして構成されます。
アプリを実行して表示する
設定がすべて完了したら、アプリケーションを実行して、公開できます。Cloud Code がファイル システムの変更を監視するため、ほぼリアルタイムでアプリを編集して再実行できます。
アプリケーションを実行するには、次の手順に沿って操作します。
Cloud Code のステータスバーで、アクティブなプロジェクト名をクリックします。
表示されたクイック選択メニューで、[Run on Kubernetes] を選択します。
現在のクラスタ コンテキストを使用するか、別のクラスタ コンテキストに切り替えるかを確認します。
プロンプトが表示されたら、イメージの push 先となるイメージ レジストリを選択します。
gcr.io/PROJECT_ID
を使用して新しいイメージ レジストリを作成する場合は、イメージ レジストリがクラスタと同じプロジェクト内にあることを確認してください。実行中のアプリケーションの進捗状況を追跡できる出力ウィンドウが表示されます。また、ターミナル出力に実行中の Pod から取得したログのライブ ストリームも表示されます。
アプリケーションが Kubernetes で実行されると、出力ウィンドウに IP アドレスが表示されます。このリンクされた IP アドレスを使用してアプリケーションにアクセスするには、
Ctrl
/Cmd
キーを押しながらアドレスをクリックします。
トラブルシューティングのヒント
既存のクラスタを使用している場合に、クラスタをアクティブとして設定し、クラスタの認証情報を取得するには、次の手順に従います。
[Cloud Code] をクリックし、[Kubernetes] セクションを展開します。
クラスタ名を右クリックし、[Set as Active Cluster] をクリックします。
アプリのデバッグ
アプリケーションをデバッグするには、次の手順に沿って操作します。
Cloud Code のステータスバーで、アクティブなプロジェクト名をクリックします。
表示されたクイック選択メニューで、[Debug on 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 コンソールで開く] をクリックします。
- [削除] をクリックし、[削除] をクリックします。
プロジェクト(およびクラスタを含む関連リソース)を削除するには、次のようにします。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
次のステップ
- VS Code に既存のアプリケーションをインポートして、Cloud Code で設定することを検討する。
- Cloud Code の YAML 編集サポートを使用して、より高度な Google Cloud と Kubernetes の構成に取り組む。
- Cloud Code が提供する言語別のデバッグ サポートを確認する。
- ファイルの同期とホットリロードを使用して開発を高速化する。
- GKE クラスタを作成して構成する
- 限定公開クラスタを構成する
- 関連する設定を構成して、Cloud Code のエクスペリエンスをカスタマイズする。
- アプリケーションを ARM64、AMD64、または混合アーキテクチャの GKE クラスタにデプロイします。