Cloud Shell for Kubernetes の Cloud 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 によって、選択したサンプルのクローンが作成され、使用するために新しいプロジェクトが開かれます。

独自のアプリケーションを使用する

既存のプロジェクトを使用する手順については、既存の Kubernetes アプリケーションで Cloud Code を使用するをご覧ください。

Kubernetes コンテキストを設定する

アプリケーションを実行する前に、アプリが目的の Kubernetes コンテキストにデプロイされるように設定されていることを確認します。これは構成で指定できます。

構成

Cloud Code: Develop on Kubernetes の実行構成を使用する場合は、利用可能な設定を構成して Deployment をカスタマイズできます。

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

ビルド設定

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

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

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

起動構成のカスタマイズの詳細については、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 リポジトリを使用している場合は、適切に認証されるようにしてください。

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

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

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

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

ログの表示

アプリケーションの開発中および実行中に、ターミナル出力内で実行中の Pod から出力されるログのライブ ストリームを表示できます。また、Kubernetes Explorer に移動すると、特定の Pod のログを表示することもできます。

特定の Pod のログを表示する手順は次のとおりです。

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

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

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

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

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

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

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

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

Secret を保存する

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

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

リソースの詳細を表示

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

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

次のステップ