
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Configure the Quiz application
/ 20
Create Kubernetes engine cluster
/ 20
Create a Docker Repository on Artifact registry
/ 10
Build Docker Images using Cloud Build
/ 20
Create Kubernetes Deployment and Service Resources
/ 30
Google Kubernetes Engine では、Google のインフラストラクチャを使用して、コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを行うマネージド環境が提供されます。Kubernetes Engine で提供される環境は複数のマシン(具体的には Google Compute Engine インスタンス)で構成されています。これらのマシンがグループ化されてクラスタを形成します。
クラスタの操作には、Kubernetes のメカニズムが使用されます。Kubernetes のコマンドとリソースを使用することで、アプリケーションのデプロイや管理、管理タスクの実行やポリシーの設定、デプロイ済みのワークロードの状態監視を行うことができます。
このラボでは、Container Builder や Container Registry などの Google Cloud Platform のリソースと、デプロイメント、ポッド、サービスなどの Kubernetes のリソースを活用して、Kubernetes Engine にクイズ アプリケーションをデプロイします。
このラボでは、次のタスクの実行方法について学びます。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
ウィンドウで次の操作を行います。
接続した時点で認証が完了しており、プロジェクトに各自の Project_ID、
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
Cloud Shell で、[エディタを開く] アイコン(鉛筆の形)をクリックしてコードエディタを起動します。
このセクションでは、Cloud Shell にアクセスしてクイズ アプリケーションを含む git リポジトリのクローンを作成してから、環境変数を設定し、アプリケーションを実行します。
[ターミナルを開く] をクリックして、レポジトリラボをクローンします。
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
作業ディレクトリのショートカットとしてソフトリンクを作成します。
ln -s ~/training-data-analyst/courses/developingapps/v1.2/python/kubernetesengine ~/kubernetesengine
作業ディレクトリを変更します。
cd ~/kubernetesengine/start
クイズ アプリケーションを構成します。
. prepare_environment.sh
このスクリプト ファイルを実行すると、以下の処理が行われます。
GCLOUD_PROJECT
と GCLOUD_BUCKET
の環境変数がエクスポートされる。pip install -r requirements.txt
が実行される。次のメッセージが表示されたら、クイズ アプリケーションが構成されたことを示しています。
出力例メッセージ
Creating Cloud Pub/Sub topic
Created topic [projects/qwiklabs-gcp-92b7e5716e0cbf7e/topics/feedback].
Created subscription [projects/qwiklabs-gcp-92b7e5716e0cbf7e/subscriptions/worker-subscription].
Creating Cloud Spanner Instance, Database, and Table
Creating instance...done.
Creating database...done.
Project ID: qwiklabs-gcp-92b7e5716e0cbf7e
[進行を確認] をクリックして、目標に沿って進行していることを確認します。
このセクションでは、アプリケーションのファイルを確認します。
Cloud Shellでインストールしたshellエディター(例:nano
と vim
と Cloud Shellエディター)を使用してファイルを拝見と変更することができます。このラボでCloud Shellエディターを使用します。
このラボでは、Cloud Shell コードエディタを使用してクイズ アプリケーションのコードを確認します。
training-data-analyst/courses/developingapps/v1.2/python/kubernetesengine/start
に移動します。
クイズ アプリケーションのフォルダ構成は、Kubernetes Engine でデプロイされるときの状態が反映されています。
ウェブ アプリケーションは、frontend
というフォルダにあります。
Cloud Pub/Sub にサブスクライブしてメッセージを処理するワーカー アプリケーションのコードは、backend
というフォルダにあります。
frontend
と backend
のフォルダにある [Dockerfile
] は Docker の構成ファイルで、[backend-deployment.yaml
] ファイルと [frontend-deployment.yaml
] ファイルは Kubernetes Engine の構成ファイルです。
Cloud Platform Console で、ナビゲーション メニュー > [Kubernetes Engine] > [クラスタ] をクリックします。
[クラスタを作成] をクリックします。
クラスタを設定します。以下に提供してある値を入力します、他の値をそのままで置きます:
プロパティ |
値 |
名前 |
|
ゾーン |
|
default Pool > セキュリティ > アクセス スコープ |
[すべての Cloud API に完全アクセス権を許可] を選択して、[保存]をクリックします。 |
[作成] をクリックします。 クラスタがプロビジョニングされるまでに数分かかります。
[進行を確認] をクリックして、目標に沿って進行していることを確認します。
このセクションでは、クイズ アプリケーションを Kubernetes クラスタに接続します。
[クラスタに接続] で、[Cloud Shell で実行] をクリックして、「gcloud container clusters get-credentials quiz-cluster --zone us-central1-b --project [Project-ID]
」に類似したコマンドを実行します。Cloud shell で Enter キーを押して、コマンドを実行します。
次のコマンドを実行して、クラスタ内のポッドを一覧表示します。
kubectl get pods
クラスタ内にポッドがないため、「No resources found
」のようなレスポンスが返されます。これにより、セキュリティが構成済みで、kubectl
コマンドライン ツールでクラスタへの操作が行えることを確認できました。
このセクションでは、アプリケーションのフロントエンドとバックエンド用の Dockerfile を作成して、Container Builder を使用してイメージを作成しておよびそのイメージを Container Registry に保存します。
Cloud Shell コードエディタで frontend/Dockerfile
を開き、以下の処理を行うコードのブロックを追加します。
pip install
」を実行します。/app
パスに追加します。gunicorn
」で始まるステートメントを入力して、Dockerfile
を完成させます。コンテナの実行時にこのステートメントが実行されます。Gunicorn(Green Unicorn)は HTTP サーバーで、Python ウェブ サーバー ゲートウェイ インターフェース(WSGI)の仕様に対応しています。次のコードをコピーして Dockerfile
に貼り付けます。
FROM gcr.io/google_appengine/python
RUN virtualenv -p python3.7 /env
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
ADD . /app
CMD gunicorn -b 0.0.0.0:$PORT quiz:app
backend/Dockerfile
ファイルを開き、次のコードをコピーして貼り付けます。
FROM gcr.io/google_appengine/python
RUN virtualenv -p python3.7 /env
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
ADD . /app
CMD python -m quiz.console.worker
Cloud Shellで、[start
]フォルダにあることを確認します:
cd ~/kubernetesengine/start
フロントエンドDocker イメージを作成ため、次のコマンドを実行します:
gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-frontend ./frontend/
ファイルは Cloud Storage にステージングされ、Docker イメージがビルドされて Container Registry に保存されます。この処理には数分かかります。
出力メッセージに互換性がないことを示すメッセージが表示された場合は、無視してください。
次のコマンドを実行して、バックエンドの Docker イメージをビルドします。
gcloud builds submit -t gcr.io/$DEVSHELL_PROJECT_ID/quiz-backend ./backend/
バックエンドの Docker イメージの準備ができると、最後に次のようなメッセージが表示されます。
DONE
-----------------------------------------------------------------------------------------------------------------------
ID CREATE_TIME DURATION SOURCE
IMAGES
STATUS
be0326f4-3f6f-42d6-850f-547e260dd4d7 2018-06-13T22:20:16+00:00 50S gs://qwiklabs-gcp-3f89d0745056ee31_cloudbuil
d/source/1528928414.79-4914d2a972f74e188f40ced135662b7d.tgz gcr.io/qwiklabs-gcp-3f89d0745056ee31/quiz-backend (+1 more
) SUCCESS
quiz-frontend
と quiz-backend
の 2 つのポッドが表示されます。[進行を確認] をクリックして、目標に沿って進行していることを確認します。
このセクションでは、Kubernetes のデプロイメントとサービスのリソースの仕様を含むテンプレート yaml
ファイルを変更し、Kubernetes Engine クラスタでリソースを作成します。
frontend-deployment.yaml
] ファイルを開きます。frontend-deployment.yaml
] ファイルのプレースホルダを置き換えます。
プレースホルダ名 |
値 |
|
GCP プロジェクト ID |
|
プロジェクトのメディア バケットの Cloud Storage バケット名 |
|
フロントエンド イメージの識別子は |
backend-deployment.yaml
] ファイルのプレースホルダを置き換えます。
プレースホルダ名 |
値 |
|
GCP プロジェクト ID |
|
プロジェクトのメディア バケットの Cloud Storage バケット ID |
|
バックエンド イメージの識別子は |
frontend-service.yaml
] ファイルの内容を確認します。Cloud Shell で、クイズのフロントエンド デプロイメントをプロビジョニングします。
kubectl create -f ./frontend-deployment.yaml
クイズのバックエンド デプロイメントをプロビジョニングします。
kubectl create -f ./backend-deployment.yaml
クイズのフロントエンド サービスをプロビジョニングします。
kubectl create -f ./frontend-service.yaml
[進行を確認] をクリックして、目標に沿って進行していることを確認します。
このセクションでは、デプロイされたポッドとサービスを確認し、クイズ アプリケーションに移動します。
[quiz-frontend] をクリックします。[管理対象ポッド] に 3 つの quiz-frontend ポッドがあります。
下にある[サービスの公開]部分で、[エンドポイント]部分を探して IP アドレスをコピーして、新しいタブとウインドウの URL で入力します。
新しいタブでクイズ アプリケーションが開かれます。これはアプリケーションが適切にデプロイされたことを示しています。ここでラボを終了することもできますが、時間が残っている場合はクイズを作成してみましょう。
これで、セルフペースラボ、App Dev: Deploying the Application into Kubernetes Engine - Python を完了しました。このラボで GCP リソースと Kubernetes リソースを使用してクイズ アプリケーションを実行します。
この App Dev: Deploying the Application into Kubernetes Engine - Python のセルフペースラボは、「Application Development - Python」と「Cloud Development」 クエストの一部です。クエストとは学習パスを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、次のクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なその他の Qwiklabs のクエストもご確認ください。
Kubernetes Engine について学習します。
Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください