Kubernetes 用 Cloud Code for VS Code のスタートガイド

Cloud Code を使用すると、サンプルや既存のプロジェクトから Kubernetes アプリケーションを作成できます。

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

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

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

ビルド設定

Cloud Code は、Docker、Jib、Buildpacks のアーティファクト タイプをサポートしています。優先するビルダーとそれに関係する設定の設定方法については、コンテナ イメージのビルド設定の構成ガイドをご覧ください。

起動構成をカスタマイズする

アプリケーションの実行方法を設定するには、skaffold.yaml ファイルをカスタマイズできます。

また、.vscode/launch.json ファイルの cloudcode.kubernetes 構成を編集して、起動を構成することもできます。

起動構成のカスタマイズの詳細については、Cloud Code における Kubernetes をご覧ください。

アプリケーションの実行

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

  1. コマンド パレットを開き(Ctrl/Cmd + Shift + P を押してください)、Cloud Code: Run on Kubernetes コマンドを実行します。
  2. 現在の Kubernetes コンテキストを使用してアプリを実行する(または目的のアプリに切り替える)かどうかを確認します。Kubernetes コンテキストの設定の詳細については、構成の設定をご覧ください。
  3. リモート クラスタをコンテキストとして選択した場合は、プロンプトが表示されたら、イメージの 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 のログを表示する手順は次のとおりです。

  1. Kubernetes セクションで [Deployments] を展開します。
  2. ログを表示する Pod を右クリックして、[ログを表示] をクリックします。

    [ログビューア] が開きます。

変更、再ビルド、クリーンアップ

起動構成でウォッチモードを false に設定し、アプリケーションを変更してからアプリケーションを再ビルドして再デプロイする場合は、次のコマンドを実行します。

  1. 変更を加えて保存します。

  2. デバッグ ツールバーで、[一時停止](F6)をクリックしてから、[再起動](Ctrl/Cmd + Shift + F5)をクリックしてアプリケーションを再ビルドして再デプロイします。

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

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

シークレットを保存する

API キー、パスワード、証明書などの潜在的なセンシティブ データがコードに含まれている場合は、シークレットとして保管することをおすすめします。Cloud Code を使用すると、Secret を Secret Manager に安全に保管し、必要に応じてプログラムで取得できます。

Cloud Code でシークレットを作成および管理する方法の詳細については、シークレット マネージャー ガイドをご覧ください。

リソースの詳細を表示

Kubernetes セクションには、クラスタ、Namespace、ノード、ワークロード(Deployment、レプリカセット、Pod、コンテナなど)、サービスと Ingress、構成(Secret、構成マップなど)、ストレージ(ボリュームなど)が表示されます。 Kubernetes セクションを使用すると、これらのリソースの一部に対して独自のアクションを実行できます。

リソースの詳細の表示の詳細については、Kubernetes の概要をご覧ください。

次のステップ

サポートを利用する

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