
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Google Kubernetes Engine では、Google のインフラストラクチャを使用して、コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを行えるマネージド環境が提供されています。この環境は複数のマシン(具体的には Google Compute Engine インスタンス)で構成され、これらのマシンがグループ化されてクラスタを形成します。
クラスタの操作には、Kubernetes のメカニズムが使用されます。Kubernetes のコマンドとリソースを使用して、アプリケーションのデプロイと管理、管理タスクの実施とポリシーの設定、デプロイ済みワークロードの状態のモニタリングを行うことができます。
このラボでは、Cloud Build や Container Registry などの Google Cloud Platform リソースと、Deployment、Pod、Service などの Kubernetes リソースを使用して、クイズ アプリケーションを Kubernetes Engine にデプロイします。
このラボでは、次のタスクの実行方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
Qwiklabs にシークレット ウィンドウでログインします。
ラボのアクセス時間(例: 1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。
準備ができたら、[ラボを開始] をクリックします。
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
[Google Console を開く] をクリックします。
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。
利用規約に同意し、再設定用のリソースページをスキップします。
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
このセクションでは、Cloud Shell にアクセスしてクイズ アプリケーションを含む git リポジトリのクローンを作成し、環境変数を構成してアプリケーションを実行します。
このスクリプト ファイルを実行すると、以下の処理が行われます。
GCLOUD_PROJECT
と GCLOUD_BUCKET
をエクスポートする。virtualenv
Python 環境を作成して有効にする。pip install -r requirements.txt
を実行する。クイズ アプリケーションが構成されると、次のメッセージが表示されます。
メッセージの出力例:
このセクションでは、アプリケーションのファイルを確認します。
ファイルの内容の表示および編集には、Cloud Shell にインストールされている shell エディタ(nano
や vim
)または Cloud Shell コードエディタを使用できます。このラボでは Cloud Shell コードエディタを使用します。
/kubernetesengine/start
に移動します。クイズ アプリケーションのフォルダ構造には、Kubernetes Engine にデプロイされるときの状態が反映されています。
ウェブ アプリケーションは、frontend
というフォルダにあります。
Cloud Pub/Sub にサブスクライブしてメッセージを処理するワーカー アプリケーションのコードは、backend
というフォルダにあります。
frontend
と backend
のフォルダにある Dockerfile
は Docker の構成ファイルで、backend-deployment.yaml
ファイルと frontend-deployment.yaml
ファイルは Kubernetes Engine の構成ファイルです。
Cloud Platform コンソールで、ナビゲーション メニュー > [Kubernetes Engine] > [クラスタ] をクリックします。
[作成] をクリックしてから、Standard
クラスタモードの横の [構成] をクリックします。
クラスタを構成します。次の項目を、記載されている値に設定します。他はすべてデフォルト値のままにします。
プロパティ |
値 |
名前 |
|
ゾーン |
|
[default-pool] > [セキュリティ] > [アクセス スコープ] |
[すべての Cloud API に完全アクセス権を許可] を選択 |
このセクションでは、クイズ アプリケーションを Kubernetes クラスタに接続します。
クラスタの準備ができたら、操作ボタン(その他アイコン)をクリックし、[接続] をクリックします。
[クラスタに接続] で、[Cloud Shell で実行] をクリックします。
Cloud Shell で Enter キーを押して、事前に入力されているコマンドを実行します。これは、gcloud container clusters get-credentials quiz-cluster --zone us-central1-b --project [プロジェクト-ID]
のようなコマンドです。
次のコマンドを実行して、クラスタ内の Pod を一覧表示します。
クラスタ内に Pod がないため、「No resources found
」のようなレスポンスが返されます。これで、kubectl
コマンドライン ツールでクラスタへの操作を行えるようセキュリティが構成済みであることを確認できました。
このセクションでは、アプリケーションのフロントエンド用とバックエンド用の Dockerfile を作成します。次に、Cloud Build を使用してイメージをビルドし、Container Registry に格納します。
frontend/Dockerfile
を開き、以下の処理を行うコードのブロックを追加します。pip install
」を実行します。/app
パスに追加します。gunicorn
」で始まるステートメントを入力して、Dockerfile
を完成させます。コンテナの実行時にこのステートメントが実行されます。Gunicorn(Green Unicorn)は、Python ウェブ サーバー ゲートウェイ インターフェース(WSGI)の仕様に対応している HTTP サーバーです。Dockerfile
に貼り付けます。backend/Dockerfile
ファイルを開き、次のコードをコピーして貼り付けます。start
フォルダが作業ディレクトリになっていることを確認します。ファイルが Cloud Storage にステージングされ、Docker イメージがビルドされて Container Registry に保存されます。この処理には数分かかります。
バックエンド用の Docker イメージの準備ができると、最後に次のようなメッセージが表示されます。
quiz-frontend
と quiz-backend
の 2 つの Pod が表示されます。このセクションでは、Kubernetes の Deployment と Service のリソースの仕様を含むテンプレート yaml
ファイルを変更し、Kubernetes Engine クラスタでリソースを作成します。
frontend-deployment.yaml
ファイルを開きます。frontend-deployment.yaml
ファイル内のプレースホルダを置き換えます。
プレースホルダ名 |
値 |
|
GCP プロジェクト ID。ラボの左側のパネルで確認できます。この ID は、 |
|
プロジェクト内のメディア バケット([GCLOUD_PROJECT]-media)の Cloud Storage バケット名。Cloud Shell でコマンド |
|
フロントエンド イメージの識別子( |
backend-deployment.yaml
ファイル内のプレースホルダを置き換えます。
プレースホルダ名 |
値 |
|
GCP プロジェクト ID |
|
プロジェクト内のメディア バケット( |
|
バックエンド イメージの識別子( |
frontend-service.yaml
ファイルの内容を確認します。ここでは、デプロイされた Pod と Service を確認し、クイズ アプリケーションを開きます。
quiz-frontend をクリックします。[マネージド Pod] に 3 つの quiz-frontend Pod があります。
下の方にある [Service] の [エンドポイント] で IP アドレスをコピーして、ブラウザの新しいタブまたはウィンドウの URL フィールドに貼り付けます。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください