Cloud Code を使用すると、サンプルや既存のプロジェクトから Kubernetes アプリケーションを作成できます。
テンプレートからアプリケーションを作成する
Cloud Code には、すぐに使用を開始できるようにコードサンプル テンプレートが用意されています。既存のサンプルを使用して Kubernetes アプリケーションを作成するには、次の手順に沿って操作します。
- コマンド パレットを開き(
Ctrl
/Cmd
+Shift
+P
を押下するか、[表示] > [コマンド パレット] をクリック)、その後、Cloud Code: New Application を実行します。 - サンプルのタイプには [Kubernetes アプリケーション] を選択します。
- 使用可能なオプション(NodeJS、Go、Python、Java)から、使用する言語のテンプレートを選択します。
ローカルマシン上の任意のアプリケーションの場所を選択し、[新しいアプリケーションを作成] をクリックして保存します。
Cloud Code によって、選択したサンプルのクローンが作成され、使用するために新しいプロジェクトが開かれます。
サンプル アプリケーションの構造
どの言語のサンプル アプリケーションもほぼ同じ構造をしています。別の構造も使用できますが、この構造から始めることをおすすめします。
たとえば、Node.js ゲストブック アプリケーションの構造は次のようになります。
.
|---- .vscode
| └---- launch.json
|---- kubernetes-manifests
| |---- guestbook-backend.deployment.yaml
| |---- guestbook-backend.service.yaml
| |---- guestbook-frontend.deployment.yaml
| |---- guestbook-frontend.service.yaml
| |---- mongo.deployment.yaml
| └---- mongo.service.yaml
|---- src
| |---- backend
| | |---- Dockerfile
| | |---- index.js
| | |---- app.js
| | └---- package.json
| |---- frontend
| |---- Dockerfile
| |---- index.js
| | |---- app.js
| └---- package.json
└---- skaffold.yaml
この Kubernetes ゲストブック Node.js サンプルアプリを詳しく見てみましょう。主なファイルとそれらの用途は次のとおりです。
- .vscode
extensions.json
: このプロジェクトを開くときに、関連する拡張機能のダウンロードを求めるプロンプトlaunch.json
: Kubernetes アプリケーションを実行またはデバッグするための起動構成(cloudcode.kubernetes
タイプ)tasks.json
: Visual Studio Code タスクの構成情報
- kubernetes-manifests
guestbook-backend.deployment.yaml
: バックエンド ノードの Pod 仕様guestbook-frontend.deployment.yaml
: フロントエンド ノードの Pod 仕様mongo.deployment.yaml
: データベースの Pod 仕様
- src
(backend|frontend)/app.js
: ウェブサーバー ロジックを含む Node.js コード(backend|frontend)/Dockerfile
: プログラムのコンテナ イメージのビルドに使用
skaffold.yaml
: Cloud Code が Kubernetes アプリケーションのビルド、デプロイ、デバッグに使用する Skaffold 構成ファイル
独自のアプリケーションを使用する
既存のプロジェクトを使用する手順については、既存の Kubernetes アプリケーションで Cloud Code を使用するをご覧ください。
Kubernetes コンテキストを設定する
アプリケーションを実行する前に、アプリが目的の Kubernetes コンテキストにデプロイされるように設定されていることを確認します。これは、構成で指定できます。
構成
Cloud Code: Develop on Kubernetes の実行構成を使用する場合は、利用可能な設定を構成して Deployment をカスタマイズできます。
設定を追加、編集するには、[実行] > [構成を開く] に移動してから、構成を編集または追加します。ビルド設定
Cloud Code は、Docker、Jib、Buildpacks のアーティファクト タイプをサポートしています。優先するビルダーとそれに関係する設定の設定方法については、コンテナ イメージのビルド設定の構成ガイドをご覧ください。
起動構成をカスタマイズする
アプリケーションの実行方法を設定するには、skaffold.yaml
ファイルをカスタマイズできます。
また、.vscode/launch.json
ファイルの cloudcode.kubernetes
構成を編集して、起動を構成することもできます。
起動構成のカスタマイズの詳細については、Cloud Code における Kubernetes をご覧ください。
アプリケーションの実行
アプリケーションを設定したら、skaffold dev
を利用して、それを Kubernetes クラスタで実行し、ライブで表示できます。
ローカル クラスタ(Minikube や Docker Desktop など)、Google Kubernetes Engine、その他のクラウド プロバイダでアプリケーションを実行できます。
- コマンド パレットを開き(
Ctrl
/Cmd
+Shift
+P
を押してください)、Cloud Code: Run on Kubernetes コマンドを実行します。 - 現在の Kubernetes コンテキストを使用してアプリを実行する(または目的のアプリに切り替える)かどうかを確認します。Kubernetes コンテキストの設定の詳細については、構成の設定をご覧ください。
リモート クラスタをコンテキストとして選択した場合は、プロンプトが表示されたら、イメージの push 先となるイメージ レジストリを選択します。Container Registry を使用している場合は、既存のレジストリを参照するか、作成するレジストリ名を指定できます。 プロジェクトで Artifact Registry API が有効になっていて、少なくとも 1 つの Artifact Registry リポジトリがある場合、既存の Artifact Registry リポジトリを参照して選択できます。
次のサンプルは、一般的なレジストリの場合にコンテナ イメージの保存場所を指定する方法を示しています。
Artifact Registry {region}-docker.pkg.dev/{project_id}/{repo-name} Container Registry gcr.io/{project_id} Docker Hub docker.io/{account}
非公開 Docker Hub リポジトリを使用している場合は、適切に認証されるようにしてください。AWS Container Repository(ECR) {aws_account_id}.dkr.ecr.{region}.amazonaws.com/{my-app} Azure Container Registry(ACR) {my_acr_name}.azurecr.io/{my-app} Cloud Code により、このイメージ レジストリと Kubernetes マニフェストで指定されたイメージ名が連結され、最終的なイメージ リポジトリ名が生成されます。
詳細については、イメージ レジストリ取り扱いガイドをご覧ください。
この選択は
cloudcode.kubernetes
起動構成(.vscode/launch.json 内)に保存されます。Cloud Code はコンテナをビルドして、レジストリに push し、Kubernetes 構成をクラスタに適用して、ロールアウトを待ちます。
ログを表示
アプリケーションの開発中および実行中に、ターミナル出力内で実行中の Pod から出力されるログのライブ ストリームを表示できます。また、Kubernetes セクションに移動すると、特定の Pod のログを表示することもできます。
特定の Pod のログを表示する手順は次のとおりです。
- Kubernetes セクションで [Deployments] を展開します。
ログを表示する Pod を右クリックして、[ログを表示] をクリックします。
[ログビューア] が開きます。
変更、再ビルド、クリーンアップ
起動構成でウォッチモードをfalse
に設定し、アプリケーションを変更してからアプリケーションを再ビルドして再デプロイする場合は、次のコマンドを実行します。
変更を加えて保存します。
デバッグ ツールバーで、[一時停止](
F6
)をクリックしてから、[再起動](Ctrl/Cmd + Shift + F5
)をクリックしてアプリケーションを再ビルドして再デプロイします。アプリケーションの実行を停止するには、デバッグ ツールバーで [停止] をクリックします。
アプリケーションを停止すると、デプロイされたすべての Kubernetes リソースがクラスタから削除されます。この動作は、起動構成の cleanUp
フラグを使用して変更できます。
シークレットを保存する
API キー、パスワード、証明書などの潜在的なセンシティブ データがコードに含まれている場合は、シークレットとして保管することをおすすめします。Cloud Code を使用すると、Secret を Secret Manager に安全に保管し、必要に応じてプログラムで取得できます。
Cloud Code でシークレットを作成および管理する方法の詳細については、シークレット マネージャー ガイドをご覧ください。
リソースの詳細を表示
Kubernetes セクションには、クラスタ、Namespace、ノード、ワークロード(Deployment、レプリカセット、Pod、コンテナなど)、サービスと Ingress、構成(Secret、構成マップなど)、ストレージ(ボリュームなど)が表示されます。 Kubernetes セクションを使用すると、これらのリソースの一部に対して独自のアクションを実行できます。
リソースの詳細の表示の詳細については、Kubernetes の概要をご覧ください。
次のステップ
- Buildpack、Jib、Docker を使用したビルド オプションを確認する
- ファイルの同期とホットリロードを使用して開発を高速化する。
- Cloud Code の YAML 編集サポートの詳細を確認する。