Cloud Code for VS Code を使用して Kubernetes アプリをデプロイする

このページでは、Cloud Code をすぐに使い始める方法について説明します。

「Hello World」サンプル アプリケーションを使用して新しい Kubernetes アプリケーションを設定します。クラスタを作成し、そこでアプリを実行してコードをデバッグします。動作中のアプリケーションのログの表示や、実行中のコンテナへのターミナルの接続について取り上げます。

準備

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Google Kubernetes Engine API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. Google Kubernetes Engine API を有効にします。

    API を有効にする

  8. Git をインストールします。 サンプルをマシンにコピーするには Git が必要です。
  9. Cloud Code プラグインをインストールします(まだインストールしていない場合)。

アプリケーションの作成

  1. コマンド パレットを開き(Ctrl/Cmd+Shift+P を押下するか、[表示] > [コマンド パレット] をクリック)、その後、Cloud Code: New Application を実行します。

  2. [Kubernetes Application] を選択します。

  3. お好みの言語の Hello World アプリを選択します。

    たとえば、Node.js: Hello World を選択すると、スターターの Node.js Hello World アプリが作成されます。

  4. 新しいアプリケーションを保存します。

    アプリケーションが作成されたことを確認する通知が表示され、アプリケーションの新しいウィンドウが開きます。

GKE クラスタを作成する

標準の Google Kubernetes Engine(GKE)クラスタを作成するには、次の手順に沿って操作します。

  1. [Cloud Code] をクリックし、[Kubernetes] セクションを展開します。

  2. 追加 [KubeConfig にクラスタを追加] をクリックしてから、[クイック選択] メニューで [Google Kubernetes Engine] をクリックします。

  3. container.googleapis.com を有効にするように求められたら、[Yes] を選択します。

  4. [+ 新しい GKE クラスタを作成する] をクリックします。

  5. クラスタタイプとして [スタンダード] を選択します。

  6. [開く] をクリックして、Cloud Code が Google Cloud コンソールを開くようにします。

  7. Google Cloud コンソールで、作成したプロジェクトを使用して、ゾーンを us-central1-a に設定し、クラスタ名を my-first-cluster に設定します。

  8. [CREATE] をクリックします。クラスタの作成には数分かかります。

  9. クラスタが作成されたら、[クイックピック] メニューで、更新 [更新] をクリックします。

  10. 新しいクラスタの名前がリストに表示されたら、クラスタ名をクリックします。新しいクラスタが構成に追加され、アクティブなコンテキストとして構成されます。

アプリを実行して表示する

設定がすべて完了したら、アプリケーションを実行して、公開できます。Cloud Code がファイル システムの変更を監視するため、ほぼリアルタイムでアプリを編集して再実行できます。

アプリケーションを実行するには、次の手順に沿って操作します。

  1. Cloud Code のステータスバーで、アクティブなプロジェクト名をクリックします。

    ステータスバーのアクティブなプロジェクト名

  2. 表示されたクイック選択メニューで、[Run on Kubernetes] を選択します。

  3. 現在のクラスタ コンテキストを使用するか、別のクラスタ コンテキストに切り替えるかを確認します。

  4. プロンプトが表示されたら、イメージの push 先となるイメージ レジストリを選択します。gcr.io/PROJECT_ID を使用して新しいイメージ レジストリを作成する場合は、イメージ レジストリがクラスタと同じプロジェクト内にあることを確認してください。

    実行中のアプリケーションの進捗状況を追跡できる出力ウィンドウが表示されます。また、ターミナル出力に実行中の Pod から取得したログのライブ ストリームも表示されます。

  5. アプリケーションが Kubernetes で実行されると、出力ウィンドウに IP アドレスが表示されます。このリンクされた IP アドレスを使用してアプリケーションにアクセスするには、Ctrl/Cmd キーを押しながらアドレスをクリックします。

トラブルシューティングのヒント

既存のクラスタを使用している場合に、クラスタをアクティブとして設定し、クラスタの認証情報を取得するには、次の手順に従います。

  1. [Cloud Code] をクリックし、[Kubernetes] セクションを展開します。

  2. クラスタ名を右クリックし、[Set as Active Cluster] をクリックします。

アプリのデバッグ

アプリケーションをデバッグするには、次の手順に沿って操作します。

  1. Cloud Code のステータスバーで、アクティブなプロジェクト名をクリックします。

    ステータスバーのアクティブなプロジェクト名

  2. 表示されたクイック選択メニューで、[Debug on Kubernetes] を選択します。

  3. プロンプトが表示されたら、ローカルでアプリケーションを実行およびデバッグするための認証情報を認証します

  4. プロンプトが表示されたら、現在のクラスタ コンテキストを使用するか、または優先するコンテキストに切り替えるかを確認します。

    Cloud Code は .vscode/launch.json ファイルの cloudcode.kubernetes 構成を使用してアプリケーションを実行し、アプリケーションにデバッガ セッションをアタッチします。

    Cloud Code はコンテナをビルドしてレジストリに push し、Kubernetes 構成をクラスタに適用して、ライブ アプリケーションの閲覧に使用できる IP アドレスを返します。

  5. デバッガ セッションが接続される前に、デバッグするプログラムが存在するリモート コンテナでディレクトリを確認または入力するか、Esc キーを押してコンテナのデバッグをスキップするよう求められます。

  6. 9 行目にブレークポイントを追加するには、src/app.js を開き、エディタの空白をクリックします。

    赤い塗りつぶしの円はアクティブなブレークポイントを示し、灰色で白抜きの円は無効なブレークポイントを示します。ブレークポイントを細かく制御するには、VS Code のデバッグビューの [BREAKPOINTS] セクションを使用します。

    デバッグビューの左側のパネルにある [BREAKPOINTS] セクションでブレークポイントの追加、削除、無効化を行う

    新しいリクエストをアプリケーションに送信すると、デバッガは最初のアクティブなブレークポイントで一時停止します。

    次のサンプルでは、[Variables] セクションの [Local] で、Hello, world!res._contentLength; の値が 13 になっていることに注意してください。

    ブレークポイントと変数でアプリを一時停止し、スコープ内の値が入力されたコールスタック セクション

  7. 8 行目の Hello, goodbye! に送信される文字列を編集し、[Debug on Kubernetes] アクションを再起動します。

    アプリを再ビルドして再デプロイしたら、res._contentLength の更新された値をメモします。

    更新された値が含まれるブレークポイントで一時停止したアプリ

デバッグのセッションを開始すると、[Development sessions] ペインに構造化ロギングビューが表示されます。タスクが開始されると、タスクが回転する半円の progress_activity とともに表示されます。

タスクが成功すると、手順の横にチェックマーク check_circle が表示されます。

手順の詳細を表示するには、[開発セッション] ペインで手順をクリックします。[出力] ペインに、ロギング出力の手順が表示されます。

コンテナでターミナルを開く

コンテナでターミナルを開くには、次の手順に沿って操作します。

  1. [Cloud Code] をクリックし、[Kubernetes] セクションを展開します。

  2. 次のセクションを展開します。

    • 優先クラスタのセクション
    • [Namespaces] セクション、優先する名前空間のセクション
    • [Pods] セクションと、優先する Pod のセクション
    • [Containers] セクション

      Cloud Code Pod

  3. ターミナルを開くコンテナを右クリックし、[Get Terminal] をクリックします。

    ターミナルが起動し、実行中のコンテナ内のシェルにアクセスできるようになります。

クリーンアップ

アプリケーションを中止すると、実行中にデプロイされたすべての Kubernetes リソースは自動で削除されます。

このクイックスタートで使用した他のリソースについてアカウントに課金されないようにするには、プロジェクトを再利用する場合、プロジェクトを削除するか、作成したクラスタを削除してください。

クラスタを削除するには:

  1. [Cloud Code] をクリックし、[Kubernetes] エクスプローラを展開します。
  2. ポインタをクラスタ名に合わせて、open_in_new [Google Cloud コンソールで開く] をクリックします。
  3. [削除] をクリックし、[削除] をクリックします。

プロジェクト(およびクラスタを含む関連リソース)を削除するには、次のようにします。

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ