Cloud Shell エディタを使用してコンテナ化されたウェブアプリを作成し、ローカルでテストしてから、Google Kubernetes Engine(GKE)クラスタにデプロイする方法について説明します。
このタスクを Cloud Shell エディタで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。
始める前に
-
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
ウェブアプリを作成する
アプリを作成するための環境として Cloud Shell エディタを使用します。このエディタには、クラウド開発に必要なツールがプリロードされています。
アプリを作成するには:
Cloud Shell エディタを起動する
認証情報を使用して Google Cloud API を呼び出すことを Cloud Code に承認するよう求められたら、[承認] をクリックします。
ステータスバーから [Cloud Code] メニューを起動します。
[New Application] を選択します。
サンプルアプリの種類として [Kubernetes application] を選択します。
Kubernetes サンプルアプリのリストで [Go:Hello World] を選択します。
アプリを配置するフォルダを選択して、[Create New Application] をクリックします。
Cloud Shell エディタの新しいワークスペースにアプリが読み込まれます。再読み込みすると、
ローカル クラスタでアプリをテストする
これでアプリが作成され、Cloud Shell のローカル Kubernetes クラスタで実行できるようになりました。
- Cloud Shell ターミナルを開くには、[Terminal] > [New Terminal] を選択します。
ローカルの minikube クラスタを起動するには、
ターミナル のコマンド プロンプトから次のコマンドを実行します。minikube start
minikube クラスタの設定には 1 分かかる場合があります。
Cloud Shell に Cloud API の呼び出しを認可するよう求められたら、[承認] をクリックします。
クラスタの設定後、次のようなメッセージが表示されます。
Done! kubectl is now configured to use "minikube" cluster...
ローカル クラスタを構成したら、このアプリをビルドして実行します。
- ステータスバーから
[Cloud Code] メニューを起動します。 [Run on Kubernetes] を選択します。プロンプトが表示されたら、現在の minikube コンテキストを使用することを確認します。
このプロセスには数分かかります。デプロイ ステータスは、
[Development sessions] ビューで確認できます。[Development sessions] ビューで別のノードをクリックすると、選択したデプロイ フェーズに関するログの抜粋が表示されます。
アプリのビルドとデプロイが完了したら、サービスのポート転送ノードを探します。開発セッション ビューで、[Port Forward URLs] > [service] > [
go-hello-world-external ] の順に開きます。アプリを起動するには、
go-hello-world-external の上にポインタを置いて、 「Open URL」クリックします。
アプリを編集する
Hello World アプリのコンポーネントについては、アプリの readme.md
- 基本的な
go-hello-world
ウェブアプリ( )。受信したすべてのリクエストに対して、テンプレートに記載されている「It's running!」というレスポンスを返します。main.go
- ロードバランサの
go-hello-world-external
サービス( )。Kubernetes Service を記述してアプリを公開します。hello.service.yaml
アプリを編集するには:
ファイルを変更して「It's redeployed!」と出力するようにします。このファイルは自動的に保存されます。main.go
アプリのビルドとデプロイが完了するまで待ちます。
[Development sessions] ビューを使用して、アプリの再ビルドの進行状況をモニタリングします。アプリのビルドとデプロイが完了したら、[Development sessions] > [Port Forward URLs] > [service] >
[go-hello-world-external] の順に移動して、サービスのポート転送ノードを探します。アプリを起動するには、
go-hello-world-external の上にポインタを置いて、 「Open URL」クリックします。
アプリのログを表示する
実行中のアプリを分析するには、ログビューアを使用してログのモニタリングを行います。
コマンド パレット(
Ctrl
/Cmd
+Shift
+P
でアクセス可能、または [表示] >[コマンド パレット])を開いてから、[Cloud Code: View Logs] を実行して、ログビューアを起動します。このビューでは、アプリのログをフィルタしたり、ログ内のさまざまな要素を表示できます。
アプリのログ
go-hello-world
を表示するには、Deployment フィルタを指定します。アプリのタブに [It's redeployed!] と表示されます。ブラウザでページを再読み込みしてから、Cloud Shell タブに戻ります。
新しく生成されたログをログビューアで表示するには、
[Refresh ] をクリックします。
Google Kubernetes Engine クラスタを作成する
アプリのデプロイ先となる新しい Google Kubernetes Engine クラスタを作成するには:
[Cloud Code] をクリックし、[Kubernetes] セクションを展開します。
[KubeConfig にクラスタを追加] をクリックしてから、[クイック選択] メニューで [Google Kubernetes Engine] をクリックします。
container.googleapis.com
を有効にするように求められたら、[はい] をクリックします。[+ 新しい GKE クラスタを作成する] をクリックします。
クラスタタイプとして [スタンダード] を選択します。
[開く] をクリックして、Cloud Shell が Google Cloud コンソールを開くようにします。
Google Cloud コンソールで、作成したプロジェクトを使用して、ゾーンを
us-central1-a
に設定し、クラスタ名をmy-first-cluster
に設定します。[作成] をクリックします。クラスタの作成には数分かかります。
クラスタが作成されたら、[クイックピック] メニューで、 [更新] をクリックします。
新しいクラスタの名前がリストに表示されたら、クラスタ名をクリックします。新しいクラスタが構成に追加され、アクティブなコンテキストとして構成されます。
アプリを GKE クラスタにデプロイする
新しいクラスタにアプリをデプロイします。
ステータスバーにある [
Cloud Code ] メニューから、[Run on Kubernetes] を選択します。新しく作成したクラスタがアプリのコンテキストであることを確認します。
イメージ レジストリのデフォルトのオプションを確認します。
アプリのビルドとデプロイが完了するまで待ちます。
[Development sessions] ビューを使用して、アプリの再ビルドの進行状況をモニタリングします。アプリのビルドとデプロイが完了したら、サービスのポート転送ノードを探します。開発セッション ビューで、[Port Forward URLs] > [service] > [
go-hello-world-external ] の順に開きます。アプリを起動するには、
go-hello-world-external の上にポインタを置いて、 「Open URL」クリックします。
クリーンアップ
このクイックスタート用に作成したクラスタのみを削除するには:
- ポインタをクラスタ名に合わせて、 [Google Cloud コンソールで開く] をクリックします。
- [削除] をクリックし、[削除] をクリックします。
プロジェクト(およびクラスタを含む関連リソース)を削除するには、次のようにします。
Google Cloud コンソールの [プロジェクト] ページに移動します。
このクイックスタート用に作成したプロジェクトを選択し、[削除] をクリックします。
プロジェクト ID を入力して確定し、[シャットダウン] をクリックします。
プロジェクトがシャットダウンし、プロジェクト削除のスケジュールが決定されます。
次のステップ
Cloud Shell エディタのインターフェースの機能を把握します。
Cloud Shell エディタを使用したデバッグと、Cloud Shell エディタでの Kubernetes アプリケーションの追加サポートを確認する。