始める前に
- ラボでは、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
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 のインフラストラクチャを使用して、コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを行えるマネージド環境が提供されます。この環境は複数のマシン(具体的には、Compute Engine インスタンス)で構成され、これらのマシンがグループ化されてクラスタを形成します。
クラスタの操作には、Kubernetes のメカニズムが使用されます。Kubernetes のコマンドとリソースを使用して、アプリケーションのデプロイと管理、管理タスクの実施とポリシーの設定、デプロイ済みワークロードの状態のモニタリングを行うことができます。
このラボでは、Cloud Build や Artifact Registry などの Google Cloud リソースと、Deployment、Pod、Service などの 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 リポジトリのクローンを作成し、環境変数を設定してアプリケーションを実行します。
このスクリプト ファイルを実行すると、以下の処理が行われます。
GCLOUD_PROJECT と
GCLOUD_BUCKET をエクスポートする。
pip install -r requirements.txt を実行する。
クイズ アプリケーションが構成されると、次のメッセージが表示されます。
メッセージの出力例
[進行状況を確認]
をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、アプリケーションのファイルを確認します。
ファイルの内容の表示および編集には、Cloud 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 の構成ファイルです。
このセクションでは、Google Cloud コンソールを使用して Kubernetes Engine クラスタを作成し、接続します。
コンソールで、ナビゲーション メニュー
> [Kubernetes Engine] > [クラスタ]
をクリックします。
[作成] をクリックします。
[Standard: 自身でクラスタを管理する] の [構成] をクリックし、次の項目を、記載されている値に設定します。他はすべてデフォルト値のままにします。
|
プロパティ |
値 |
名前 |
|
ゾーン |
|
|
デフォルトの [プール] > [セキュリティ] > [アクセス スコープ] |
[すべての Cloud API に完全アクセス権を許可] を選択 |
[作成] をクリックします。クラスタのプロビジョニングには数分かかります。
[進行状況を確認]
をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、クイズ アプリケーションを Kubernetes クラスタに接続します。
Enter キーを押し、Cloud Shell でコマンドを実行します。
クラスタ内に Pod がないため、「No resources found in default namespace」のようなレスポンスが返されます。これで、kubectl コマンドライン
ツールでクラスタへの操作を行えるようセキュリティが構成済みであることを確認できました。
Artifact Registry は、コンテナ イメージと言語パッケージの管理に役立ちます。アーティファクトのタイプによって必要な仕様が異なります。たとえば、Maven の依存関係のリクエストは Node の依存関係のリクエストとは異なります。
さまざまな API 仕様をサポートするために、ユーザーが求める API
レスポンスの形式を Artifact Registry
に把握させる必要があります。これを行うには、リポジトリを作成し、目的のリポジトリ
タイプを示す --repository-format フラグを渡します。
Cloud Shell の承認を求めるプロンプトが表示されたら、[承認] をクリックします。
container-dev-repo
という名前の新しい Docker
リポジトリが作成されていることを確認します。クリックすると、現時点では空であることがわかります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、アプリケーションのフロントエンド用とバックエンド用の Dockerfile を作成します。次に、Cloud Build を使用してイメージをビルドし、Artifact Registry に格納します。
frontend/Dockerfile を開きます。pip install」を実行します。
/app パスに追加します。
gunicorn」で始まるステートメントを入力して、Dockerfile
を完成させます。コンテナの実行時にこのステートメントが実行されます。Gunicorn(Green
Unicorn)は、Python ウェブ サーバー ゲートウェイ
インターフェース(WSGI)の仕様に対応している HTTP サーバーです。
次のコードをコピーして Dockerfile に貼り付けます。
backend/Dockerfile
ファイルを開き、次のコードをコピーして貼り付けます。
start
フォルダが作業ディレクトリになっていることを確認します。
ここでは、Docker イメージがビルドされ、Artifact Registry に保存されます。この処理には数分かかります。
出力メッセージに、互換性がないことを示すメッセージが表示された場合は、無視してください。
バックエンド用の Docker イメージの準備ができると、最後に次のようなメッセージが表示されます。
コンソールのナビゲーション メニューで、[Artifact Registry] をクリックし、[container-dev-repo] を選択します。
quiz-frontend と quiz-backend の 2 つの Pod
が表示されます。
quiz-frontend をクリックします。
[進行状況を確認]
をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、Kubernetes の Deployment と Service
のリソースの仕様を含むテンプレート
yaml ファイルを変更し、Kubernetes Engine
クラスタでリソースを作成します。
frontend-deployment.yaml
ファイルを開きます。
frontend-deployment.yaml
ファイル内のプレースホルダを置き換えます。
|
プレースホルダ名 |
値 |
|
|
プロジェクト ID |
|
|
プロジェクトのメディア バケット用 Cloud Storage バケット名 |
|
|
フロントエンド イメージの識別子( |
backend-deployment.yaml
ファイル内のプレースホルダを置き換えます。
|
プレースホルダ名 |
値 |
|
|
プロジェクト ID |
|
|
プロジェクトのメディア バケット用 Cloud Storage バケット ID |
|
|
バックエンド イメージの識別子( |
frontend-service.yaml ファイルの内容を確認します。
[進行状況を確認]
をクリックして、目標に沿って進んでいることを確認します。
ここでは、デプロイされた Pod と Service を確認し、クイズ アプリケーションを開きます。
1 つまたは両方のコンテナのステータスが「最低限の有用性がない」の場合は、ウィンドウを更新します。
quiz-frontend をクリックします。[マネージド Pod] に 3 つの quiz-frontend Pod があります。
下の方にある [サービスの公開] の [エンドポイント] で IP アドレスをコピーして、ブラウザの新しいタブまたはウィンドウの URL フィールドに貼り付けます。
セルフペース ラボ「アプリ開発: Kubernetes Engine へのアプリケーションのデプロイ - Python」はこれで終了です。Google Cloud リソースと Kubernetes リソースを活用して、クイズ アプリケーションをデプロイしました。
Kubernetes Engine について学習します。
マニュアルの最終更新日: 2026 年 10 月 13 日
ラボの最終テスト日: 2026 年 10 月 13 日
Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください