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

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


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

ガイドを表示


以降のセクションでは、[ガイドを表示] をクリックした場合と同じ手順について説明します。

始める前に

  1. Google Cloud Console でプロジェクト セレクタ ページに移動します。

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

  2. Google Cloud プロジェクトを選択または作成します。

ウェブアプリを作成する

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

アプリを作成するには:

  1. ステータスバーから [Cloud Code] メニューを起動します。
  2. [New Application] を選択します。
  3. サンプルアプリのタイプとして [Kubernetes application] を選択します。
  4. サンプルの Kubernetes アプリのリストから、[Go:Hello World] を選択します。
  5. アプリを配置するフォルダを選択して、[Create New Application] をクリックします。

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

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

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

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

    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 コンテキストを使用することを確認します。

    このプロセスには数分かかります。アプリのビルドとデプロイの進捗状況が [Output] パネルに表示されます。

  4. アプリがビルドされたら、[Output] パネルに表示された localhost のリンクをクリックして、アプリを起動します。

アプリを編集する

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. アプリのビルドとデプロイが完了するまで待ちます。[Output] パネルを使用して、アプリの再ビルドの進行状況をモニタリングします。

  3. アプリのビルドとデプロイが完了したら、[Output] パネルに表示された localhost リンクをクリックして、更新したアプリを起動します。

アプリのログを表示する

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

  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.Kubernetes Explorer を開くには、 [Cloud Code - Kubernetes] をクリックします。

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

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

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

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

  5. [開く] をクリックして、Cloud Shell がコンソールを開くことを許可します。

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

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

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

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

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

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

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

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

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

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

  5. アプリのビルドとデプロイが完了したら、[Output] パネルに表示された localhost リンクをクリックして、更新したアプリを起動します。

クリーンアップ

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

  1. ポインタをクラスタ名の上に置き、コンソール アイコンで開く [コンソールで開く] をクリックします。
  2. [削除] をクリックし、[削除] をクリックします。

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

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

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

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

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

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

次のステップ