Cloud Code を使用すると、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 リポジトリを参照して選択できます。
次のサンプルは、一般的なレジストリの場合にコンテナ イメージの保存場所を指定する方法を示しています。
Container Registry gcr.io/{project_id} Docker Hub docker.io/{account}
非公開 Docker Hub リポジトリを使用している場合は、適切に認証されるようにしてください。Cloud Code により、このイメージ レジストリと Kubernetes マニフェストで指定されたイメージ名が連結され、最終的なイメージ リポジトリ名が生成されます。
詳細については、イメージ レジストリ取り扱いガイドをご覧ください。
この選択は
cloudcode.kubernetes
起動構成(.vscode/launch.json 内)に保存されます。Cloud Code はコンテナをビルドして、レジストリに push し、Kubernetes 構成をクラスタに適用して、ロールアウトを待ちます。
ロールアウトが完了すると、宣言されたすべてのコンテナポートが Cloud Code によってマシンに自動的にポート転送され、URL が出力ウィンドウに表示されるので、ライブ アプリケーションを閲覧できます。
セッションが完了すると、次のコンテキスト メニュー コマンドを使用できます。
- デプロイログを開く: Cloud Code ログ エクスプローラで特定のデプロイのアプリケーション ログを開きます。
- Open Service URL: 特定サービスのアプリケーション サービス URL をウェブブラウザで開きます。
起動構成でウォッチモードをオフにし、アプリケーションを変更して再ビルドと再デプロイを行う場合は、[Development sessions] ペインで、実行アクションを一時停止し、
[Rebuild and redeploy the application] をクリックします。
アプリケーションの実行を停止するには、デバッグ ツールバーの
[停止] をクリックします。
アプリケーションを停止すると、デプロイされたすべての Kubernetes リソースがクラスタから削除されます。この動作は、起動構成の
cleanUp
フラグを使用して変更できます。
ビルダーとビルド環境の選択
ルートに skaffold.yaml ファイルが含まれていないプロジェクト、またはその .vscode/launch.json ファイルで skaffold.yaml を参照していないプロジェクトでは、Cloud Code UI を使用してビルド環境とビルド環境を選択できます。ローカルでのビルドは、独自のリソースを使用するため、無料です。Cloud Build でのビルドは、ターゲット マシンのプロセッサ アーキテクチャと一致していない低速のマシンに適しています。Cloud Build を使用してアプリケーションをビルドする場合のコストについては、Cloud Build の料金をご覧ください。
サンプルのいずれかを使用して UI を使用する場合は、ビルド アクションを実行する前に skaffold.yaml ファイルを削除します。UI を使用せずにビルダーとビルド環境を選択する手順については、Skaffold 構成の手動作成をご覧ください。
skaffold.yaml ファイルのないプロジェクトでコマンド パレットを開き(
Ctrl
/Cmd
+Shift
+P
を押してください)、[Cloud Code: Run on Kubernetes] か [Cloud Code: Debug on Kubernetes] を実行します。ビルド環境を選択します。
Cloud Build を選択する場合は、イメージ レジストリを指定します。
各イメージのビルダー(Docker または Buildpack)とその設定を指定します。
構成オプションのチェックボックスをオンまたはオフにして、[Debug] または [Run] をクリックします。
選択したオプションは skaffold.yaml ファイルに保存されます。このファイルをさらにカスタマイズするには、直接編集できます。
起動構成のカスタマイズ
アプリケーションの実行方法を構成するには、skaffold.yaml ファイルをカスタマイズできます
.vscode/launch.json
ファイルの cloudcode.kubernetes
構成で次のフィールドを指定して、起動を構成することもできます。
- skaffoldConfig: ビルドとデプロイの設定を含む Skaffold 構成ファイルを指定します。
- profile: 使用する Skaffold プロファイルを指定します。定義されていない場合は、デフォルトのプロファイルが使用されます。
- imageRegistry: イメージを push するイメージ レジストリを指定します。
- watch: ワークスペース内の変更を監視し、アプリケーションを再実行するかどうかを指定します。明示的に false に設定されていない限り、デフォルトでは true です。
- cleanUp: アプリケーションの終了後にクラスタにデプロイされた Kubernetes リソースを削除するかどうかを指定します。明示的に false に設定されていない限り、デフォルトでは true です。
- portForward: クラスタに公開された Kubernetes リソースをローカルマシンにポート転送するかどうかを指定します。明示的に false に設定されていない限り、デフォルトでは true です。