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

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


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

ガイドを表示


始める前に

  1. In the Google Cloud console, go to the project selector page.

    Go to project selector

  2. Select or create a Google Cloud project.

ウェブアプリを作成する

アプリを作成するための環境として 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 の上にポインタを置いて、go-hello-world-external」クリックします。

アプリを編集する

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 でアクセス可能、または [表示] >[コマンド パレット])を開いてから、[Cloud Code: View Logs] を実行して、ログビューアを起動します。

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

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

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

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

Google Kubernetes Engine クラスタを作成する

アプリのデプロイ先となる新しい Google Kubernetes Engine クラスタを作成するには:

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

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

  3. container.googleapis.com を有効にするように求められたら、[はい] をクリックします。

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

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

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

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

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

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

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

アプリを GKE クラスタにデプロイする

新しいクラスタにアプリをデプロイします。

  1. ステータスバーにある [Cloud Code] メニューから、[Run on Kubernetes] を選択します。

  2. 新しく作成したクラスタがアプリのコンテキストであることを確認します。

  3. イメージ レジストリのデフォルトのオプションを確認します。

  4. アプリのビルドとデプロイが完了するまで待ちます。[Development sessions] ビューを使用して、アプリの再ビルドの進行状況をモニタリングします。

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

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

クリーンアップ

このクイックスタート用に作成したクラスタのみを削除するには:

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

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

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

    プロジェクト ページに移動

  2. このクイックスタート用に作成したプロジェクトを選択し、[削除] をクリックします。

  3. プロジェクト ID を入力して確定し、[シャットダウン] をクリックします。

    プロジェクトがシャットダウンし、プロジェクト削除のスケジュールが決定されます。

次のステップ