Cloud Code for VS Code のローカル開発に minikube を使用する

Cloud Code によって minikube が自動的にインストール、管理されます。依存関係の管理をオプトアウトした場合は、minikube バイナリを PATH に追加します。

始める前に

  1. Git をインストールして、Cloud Code がサンプルのクローン作成などの Git オペレーションを実行できるようにします。
  2. Cloud Code プラグインをインストールします(まだインストールしていない場合)。

テンプレートからアプリケーションを作成する

Cloud Code には、すぐに使用を開始できるようにコードサンプル テンプレートが用意されています。既存のサンプルを使用して Kubernetes アプリケーションを作成するには、次の手順に沿って操作します。

  1. コマンド パレットを開き(Ctrl/Cmd+Shift+P を押下するか、[表示] > [コマンド パレット] をクリック)、その後、Cloud Code: New Application を実行します。
  2. サンプルのタイプには [Kubernetes アプリケーション] を選択します。
  3. 使用可能なオプション(NodeJS、Go、Python、Java)から、使用する言語のテンプレートを選択します。
  4. ローカルマシン上の任意のアプリケーションの場所を選択し、[新しいアプリケーションを作成] をクリックして保存します。

    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 をカスタマイズできます。

設定を追加、編集するには、[実行] > [構成を開く] に移動してから、構成を編集または追加します。

minikube クラスタを作成してデプロイする

minikube クラスタを起動する

Cloud Code によって minikube が自動的にインストール、管理されます。依存関係の管理をオプトアウトした場合は、minikube バイナリを PATH に追加します。

  1. コマンド パレットを起動(Ctrl/Cmd + Shift + P を押下するか、[表示] > [コマンド パレット] をクリック)し、その後、Cloud Code: Control minikube コマンドを実行します。
  2. [管理する Minikube クラスタ(プロファイル)を選択する] で [minikube] をクリックし、その後、[開始] をクリックします。

minikube で実行する

  1. コマンド パレットを起動し、[Cloud Code: Run on Kubernetes] を実行します。
  2. [現在のコンテキスト(minikube)を使用してアプリを実行しますか?] で [Yes] をクリックします。
  3. Cloud Code は、minikube クラスタでアプリを実行します。プロンプトが表示されたら、認証情報を使用して Cloud Shell に Google Cloud API を呼び出すことを承認します。

    Cloud Code の [開発セッション] セクションでデプロイの詳細を表示します。

  4. [開発セッション] セクションで [Portforward URL] をクリックして URL を表示し、URL リンクをクリックしてブラウザを実行して実行中のアプリケーションを開きます。

コンテナにインタラクティブ ターミナルを開く

  1. [Cloud Code] をクリックし、[Development Sessions] エクスプローラを展開します。
  2. [Deployed Resources] を展開し、[Pods] を展開します。
  3. コンテナを右クリックし、[Get Terminal] をクリックします。

minikube クラスタを一時停止または停止する

  1. コマンド パレットを起動(Ctrl/Cmd + Shift + P を押下するか、[表示] > [コマンド パレット] をクリック)してから、Cloud Code: Control minikube コマンドを実行します。
  2. 管理する Minikube クラスタ(プロファイル)を選択するオプションが入力されたら、minikube をクリックして [停止] または [一時停止] をクリックします。

別のクラウド プロバイダでクラスタを作成して追加する

オンプレミス クラスタ、または Azure や AWS などの他のプロバイダのクラスタを使用している場合は、プロバイダのツールを使用してクラスタを作成し、KubeConfig に追加します。

他のローカル クラスタと連携する

minikube に加えて、Docker デスクトップ(Mac 版または Windows 版)を使用している場合は Cloud Code を使用することもできます。

Cloud Code をローカル クラスタと連携させるには、デフォルト構成(~/.kube/config など)にローカル クラスタが含まれていることを確認してください。このクラスタは現在のコンテキストとして設定する必要があります。

たとえば、Docker デスクトップでローカル クラスタの docker-for-desktop を使用していた場合は、次のコマンドで優先クラスタを設定します。

kubectl config use-context docker-for-desktop

次のステップ

サポートを利用する

フィードバックを送信するには、GitHub で問題を報告します。または、Stack Overflow で質問します。