arrow_back

Docker イメージのビルドと Kubernetes クラスタへのデプロイ: チャレンジラボ

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Docker イメージのビルドと Kubernetes クラスタへのデプロイ: チャレンジラボ

Lab 1時間 30分 universal_currency_alt クレジット: 5 show_chart 中級
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP304

Google Cloud セルフペース ラボ

概要

チャレンジラボでは、シナリオと一連のタスクが提供されます。各ステップの説明に沿って進める形式ではなく、クエスト内のラボで習得したスキルを駆使して、ご自身でタスクを完了していただきます。タスクが適切に完了したかどうかは、このページに表示される自動スコアリング システムで確認できます。

チャレンジラボは、Google Cloud の新しいコンセプトについて学習するためのものではありません。デフォルト値を変更する、エラー メッセージを読み調査を行ってミスを修正するなど、習得したスキルを応用する能力が求められます。

100% のスコアを達成するには、制限時間内に全タスクを完了する必要があります。

このラボは、Google Cloud Certified Professional Cloud Architect 認定試験に向けて準備している受講者を対象としています。ぜひチャレンジしてください。

設定

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。

チャレンジ シナリオ

あなたの会社の開発チームは、コンテナ化されたマイクロサービス アプローチをアプリケーション アーキテクチャに採用したいと考えています。あなたは、開発チームが用意してくれたサンプル アプリケーションをテストし、Google Kubernetes コンテナにデプロイできるかどうかを確認する必要があります。開発チームが用意してくれたのは Dockerfile とその関連コンテキストを備えた echo-web と呼ばれるシンプルな Go アプリケーションで、Docker イメージをすぐにビルドできるものです。

チャレンジ

デプロイをテストするには、サンプル アプリケーションをダウンロードし、Container Registry に格納できるタグを使用して Docker コンテナ イメージをビルドする必要があります。イメージをビルドしたら、Container Registry に push したうえでデプロイします。

準備したイメージを使用して Kubernetes クラスタを作成し、サンプル アプリケーションをクラスタにデプロイします。

注: ラボのアクティビティを正確にトラッキングするには、コンテナ リポジトリのイメージ名として「echo-app」を使用し、「echo-cluster」という名前を付けた Kubernetes クラスタを ゾーン内に作成する必要があります。また、Deployment 名は「echo-web」を使用する必要があります。

タスク 1. Kubernetes クラスタを作成する

  1. テスト環境の容量が限られているため、作成するテスト用 Kubernetes クラスタを 2 つの e2-standard-2 インスタンスに限定する必要があります。作成するクラスタの名前は「echo-cluster」とします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。Kubernetes クラスタを作成する

タスク 2. タグ付き Docker イメージをビルドする

Dockerfile やアプリケーション コンテキスト ファイルなどのサンプル アプリケーションは、echo-web.tar.gz というアーカイブに格納されています。このアーカイブはすでに、gs://[PROJECT_ID] というラボ プロジェクトに属する Cloud Storage バケットにコピーされています。

  • これを v1 というタグを付けてデプロイする必要があります。

タスク 3. イメージを Google Container Registry に push する

  • あなたの会社では、あらゆるプロジェクトで gcr.io という Container Registry ホスト名を必ず使用することになっています。サンプル アプリケーションは、実行先システムの構成データをレポートするシンプルなウェブ アプリケーションで、デフォルトで TCP ポート 8000 を使用するように構成されています。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。v1 タグが付いたアプリケーション イメージが gcr.io リポジトリに push されている

タスク 4. アプリケーションを Kubernetes クラスタにデプロイする

  • このアプリケーションはポート 8000 上の HTTP リクエストに応答するように構成されていますが、ポート 80 上の標準的なウェブ リクエストに応答するように Service を構成する必要があります。サンプル アプリケーション用のクラスタを構成する際は、デプロイ名を「echo-web」とします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。アプリケーションがクラスタにデプロイされていることを確認する

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。Echo-app のようなリクエストに応答するサービスが存在することをテストする

トラブルシューティング

504 ゲートウェイ タイムアウト エラーが発生する: 単にアプリケーションの初期化がまだ完了していないことを示している可能性もありますが、Dockerfile で設定されているデフォルト ポート(TCP ポート 8000)が、アプリケーション イメージをデプロイする際や外部アクセスを構成する際に選択したアプリケーション ポートと一致していないことが原因の場合もあります。

最後の 3 つの目標に対する評価スコアを獲得できなかった場合: Kubernetes クラスタを、ラボで指定されている ゾーン以外のゾーン内に作成したことが考えられます。

お疲れさまでした

これで完了です。このラボでは、サンプル アプリケーションを Kubernetes クラスタにデプロイしました。はじめに Kubernetes クラスタを作成し、次に Docker イメージをビルドして Container Registry に push しました。最後に、アプリケーションをクラスタにデプロイしました。

Cloud Architecture: Design, Implement, and Manage バッジ

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2023 年 12 月 5 日

マニュアルの最終テスト日: 2023 年 12 月 5 日

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。