コンテナ化されたウェブアプリの作成とデプロイ

Cloud Shell エディタを使用してコンテナ化されたウェブアプリを作成し、ローカルでテストしてから、Google Kubernetes Engine(GKE)クラスタにデプロイする方法について説明します。


このタスクを Cloud Shell エディタで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


始める前に

  1. コンソールで、プロジェクトの選択ページに移動します。 Google Cloud

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

  2. プロジェクトの選択または作成 Google Cloud

    プロジェクトを選択または作成するために必要なロール

    • プロジェクトを選択する: プロジェクトの選択には特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール (roles/resourcemanager.projectCreator)が必要です。これには resourcemanager.projects.create 権限が含まれています。ロールを付与する方法を確認する。

ウェブアプリを作成する

アプリを作成するための環境として Cloud Shell エディタを使用します。このエディタには、クラウド開発に必要なツールがプリロードされています。

アプリを作成するには:

  1. Cloud Shell エディタを起動する

  2. 認証情報を使用して Google Cloud API を呼び出すことを Cloud Code に承認するよう求められたら、[承認] をクリックします。

  3. ステータスバーから [Cloud Code] メニューを起動します。

  4. [New Application] を選択します。

  5. サンプルアプリの種類として [Kubernetes application] を選択します。

  6. Kubernetes サンプルアプリのリストで [Go:Hello World] を選択します。

  7. アプリを配置するフォルダを選択して、[Create New Application] をクリックします。

Cloud Shell エディタの新しいワークスペースにアプリが読み込まれます。再読み込みすると、エクスプローラ ビューでアプリにアクセスできるようになります。

ローカル クラスタでアプリをテストする

これでアプリが作成され、Cloud Shell のローカル Kubernetes クラスタで実行できるようになりました。

  1. Cloud Shell ターミナルを開くには、[Terminal] > [New Terminal] を選択します。
  2. ローカルの minikube クラスタを起動するには、ターミナルのコマンド プロンプトから次のコマンドを実行します。

    minikube start
    

    minikube クラスタの設定に 1 分ほどかかる場合があります。

  3. Cloud Shell に Cloud API の呼び出しを認可するよう求められたら、[承認] をクリックします。

    クラスタの設定後、次のようなメッセージが表示されます。

    Done! kubectl is now configured to
    use "minikube" cluster...
    

ローカル クラスタを構成したら、このアプリをビルドして実行します。

  1. ステータスバーから [Cloud Code] メニューを起動します。
  2. [Run on Kubernetes] を選択します。
  3. プロンプトが表示されたら、現在の minikube コンテキストを使用することを確認します。

    このプロセスには数分かかります。デプロイ ステータスは、[Development sessions] ビューで確認できます。

    [Development sessions] ビューで別のノードをクリックすると、選択したデプロイ フェーズに関するログの抜粋が表示されます。

  4. アプリのビルドとデプロイが完了したら、サービスのポート転送ノードを探します。開発セッション ビューで、[Port Forward URLs] > [service] > [go-hello-world-external] の順に開きます。

  5. アプリを起動するには、go-hello-world-external の上にポインタを置いて、「Open URL」クリックします。

アプリを編集する

Hello World アプリのコンポーネントについては、アプリの readme.md ファイルの図をご覧ください。アプリの大まかな構成は次のとおりです。

  • 基本的な go-hello-world ウェブアプリ(main.go)。受信したすべてのリクエストに対して、テンプレートに記述されている「It's running!」というレスポンスを返します。
  • ロードバランサの go-hello-world-external サービス(hello.service.yaml)。Kubernetes Service を記述してアプリを公開します。

アプリを編集するには:

  1. main.go ファイルを変更して「It's redeployed!」と出力するようにします。このファイルは自動的に保存されます。
  2. アプリのビルドとデプロイが完了するまで待ちます。[Development sessions] ビューを使用して、アプリの再ビルドの進行状況をモニタリングします。

  3. アプリのビルドとデプロイが完了したら、[Development sessions] > [Port Forward URLs] > [service] > [go-hello-world-external] の順に移動して、サービスのポート転送ノードを探します。

  4. アプリを起動するには、go-hello-world-external の上にポインタを置いて、「Open URL」クリックします。

アプリのログを表示する

実行中のアプリを分析するには、ログビューアを使用してログのモニタリングを行います。

  1. コマンド パレット(Ctrl/Cmd + Shift + P または [View] > [Command Palette])を開いてから、[Cloud Code: View Logs] を実行して、ログビューアを起動します。

    このビューでは、アプリのログをフィルタしたり、ログ内のさまざまな要素を表示できます。

  2. アプリのログを表示するには、Deployment フィルタを指定します(go-hello-world)。

  3. アプリのタブに [It's redeployed!] と表示されます。ブラウザでページを再読み込みしてから、Cloud Shell タブに戻ります。

  4. 新しく生成されたログをログビューアで表示するには、 [Refresh] をクリックします。