Kubernetes アプリケーションの実行

Cloud Code を使用すると、skaffold dev を利用して Kubernetes クラスタでアプリケーションを簡単に実行し、ライブで表示できます。ローカル クラスタ(Minikube や Docker Desktop など)、Google Kubernetes Engine、その他のクラウド プロバイダでアプリケーションを実行できます。

イメージの再ビルドを行わずにサポートされている種類のファイルに対する変更をすばやく取得し、開発ループを最適化するには、ファイルの同期とホットリロードを有効にします。

アプリケーションの実行

  1. コマンド パレットを開き(Ctrl/Cmd + Shift + P を押してください)、Cloud Code: Run on Kubernetes コマンドを実行します。
  2. 現在の Kubernetes コンテキストを使用してアプリを実行する(または目的のアプリに切り替える)かどうかを確認します。Kubernetes コンテキストの設定の詳細については、構成の設定をご覧ください。
  3. Kubernetes コンテキストがリモート クラスタの場合は、イメージの push 先となるイメージ レジストリを指定するよう求めるプロンプトが表示されます。

    次に示すのは、一般的なレジストリの場合にコンテナ イメージの保存場所を指定する方法の例です。

    Docker Hub docker.io/{account}
    非公開 Docker Hub リポジトリを使用している場合は、適切に認証されるようにしてください。
    Container Registry gcr.io/{project_id}

    Cloud Code により、このイメージ レジストリと Kubernetes マニフェストで指定されたイメージ名が連結され、最終的なイメージ リポジトリ名が生成されます。

    詳細については、イメージ レジストリ取り扱いガイドをご覧ください。

    この選択は cloudcode.kubernetes 起動構成(.vscode/launch.json 内)に保存されます。

    Cloud Code はコンテナをビルドして、レジストリに push し、Kubernetes 構成をクラスタに適用して、ロールアウトを待ちます。

    ロールアウトが完了すると、宣言されたすべてのコンテナポートが Cloud Code によってマシンに自動的にポート転送され、URL が出力ウィンドウに表示されるので、ライブ アプリケーションを閲覧できます。

    ポート転送して出力ウィンドウに URL を表示する

  4. セッションが完了したら、Cloud Code のステータスバーで、アプリケーションとコンテキスト リソースを監視するための追加のコンテキスト メニュー オプションを使用できるようになります。

    • Open Deployment Logs: Cloud Code ログビューアで特定のデプロイメントのアプリケーション ログを開きます。
    • Open Service URL: 特定サービスのアプリケーション サービス URL をウェブブラウザで開きます。
    • Turn on/off watch mode: 現在のセッションのウォッチモードを切り替えます。デフォルトでは、Cloud Code はファイル システム(Kubernetes 構成やコードなど)の変更を継続的に監視し、コンテナを再ビルドしてアプリケーションをクラスタに再デプロイします。これにより編集は、ほぼリアルタイムで反映されます。

      Cloud Code のステータスバーを使用して選択できるオプション: 通常の Cloud Code アクションに加えて、Open Logs ログ、Open Service URL、Watch Mode をオンにします

  5. アプリケーションの実行を停止するには、デバッグ ツールバーの デバッグ停止アイコン [停止] をクリックします。

    アプリケーションを停止すると、デプロイされたすべての Kubernetes リソースがクラスタから削除されます。この動作は、起動構成の cleanUp フラグを使用して変更できます。

ビルダーとビルド環境の選択

ルートに skaffold.yaml ファイルが含まれていないプロジェクト、またはその .vscode/launch.json ファイルで skaffold.yaml を参照していないプロジェクトでは、Cloud Code UI を使用してビルド環境とビルド環境を選択できます。ローカルでのビルドは、独自のリソースを使用するため、無料です。Cloud Build でのビルドは、ターゲット マシンのプロセッサ アーキテクチャと一致していない低速のマシンに適しています。Cloud Build を使用してアプリケーションをビルドする場合のコストについては、Cloud Build の料金をご覧ください。

サンプルのいずれかを使用して UI を使用する場合は、ビルド アクションを実行する前に skaffold.yaml ファイルを削除します。UI を使用せずにビルダーとビルド環境を選択する手順については、Skaffold 構成の手動作成をご覧ください。

  1. skaffold.yaml ファイルのないプロジェクトでコマンド パレットを開き(Ctrl/Cmd + Shift + P を押してください)、[Cloud Code: Run on Kubernetes] か [Cloud Code: Debug on Kubernetes] を実行します。

  2. ビルド環境を選択します。

    Cloud Build を選択する場合は、イメージ レジストリを指定します。

  3. 各イメージのビルダー(Docker または Buildpack)とその設定を指定します。

  4. 構成オプションのチェックボックスをオンまたはオフにして、[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 です。