arrow_back

Google Cloud での Kubernetes の管理: チャレンジラボ

ログイン 参加
700 以上のラボとコースにアクセス

Google Cloud での Kubernetes の管理: チャレンジラボ

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP510

Google Cloud セルフペース ラボのロゴ

はじめに

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

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

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

このラボは、「Google Cloud での Kubernetes の管理」スキルバッジに登録している受講者を対象としています。準備が整ったらチャレンジを開始しましょう。

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

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

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

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

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

チャレンジ シナリオ

あなたは数か月前に Cymbal Shops に入社しました。Docker と Artifact Registry を使ったコンテナ操作に多くの時間を費やし、GKE で新しいデプロイや既存のデプロイを管理するコツを学びました。また、マニフェストの更新、クラスタで実行されているアプリケーションのスケーリング、モニタリング、デバッグを練習しました。

Cymbal Shops のロゴ

あなたのチームは、新しい e コマース ウェブサイトへのスムーズなロールアウトとアプリケーションの更新を確実に行うため、あなたに Kubernetes デプロイの管理をお願いしたいと考えています。開発チームは、あなたがこの新しい役割を担う前に、新しいスキルを実証してもらいたいと考えています。この一環として、あなたは決められた時間内にサンドボックス環境で一連のタスクを実行する必要があります。

チャレンジ

サンドボックス環境の一部として、開発者が という名前の Artifact Registry リポジトリを作成しました。このリポジトリには、クラスタにデプロイする基本的なサンプル アプリケーションのコードが含まれています。

注: このリポジトリで作成されたイメージは、このラボで後ほど spls/gsp510/hello-app バケットからダウンロードするコードのコンテナ化されたバージョンです。

実行するタスクは次のとおりです。

  • 指定された一連の構成に基づいて GKE クラスタを作成する。
  • 指標モニタリングのためにクラスタでマネージド Prometheus を有効にする。
  • Kubernetes マニフェストをクラスタにデプロイし、エラーをデバッグする。
  • Kubernetes クラスタで発生したエラーに関するログベースの指標とアラート ポリシーを作成する。
  • マニフェスト エラーを修正して、アプリケーション コードをコンテナ化し、Docker を使用して Artifact Registry に push する。
  • クラスタでアプリケーションのサービスを公開し、更新を検証する。

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

新しい Cymbal Shops の e コマース ウェブサイトは GKE 上でネイティブに稼働する予定です。チームは、あなたが実際にクラスタの操作と設定を行う経験を確認したいと考えています。このセクションでは、デモ アプリケーションの実行に使用する目的で用意された一連の構成に基づいて、Kubernetes クラスタを作成する必要があります。

  1. 次の構成を使用して、 という名前の GKE クラスタを作成します。
設定
ゾーン
リリース チャンネル Regular
クラスタのバージョン 1.27.8 以降
クラスタ オートスケーラー Enabled
ノードの数 3
最小ノード数 2
最大ノード数 6

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

GKE クラスタを作成する

タスク 2. GKE クラスタでマネージド Prometheus を有効にする

Cymbal Shops は、顧客に優れたエクスペリエンスを提供するため、e コマース ウェブサイト戦略の一環として、クラスタの指標とモニタリングにマネージド Prometheus を使用し始めたいと考えています。このセクションでは、指標モニタリング用にクラスタでマネージド Prometheus を有効にし、サンプル Prometheus アプリケーションと Pod モニタリングをデプロイするための名前空間を作成します。

  1. GKE クラスタで Prometheus のマネージド コレクションを有効にします。

  2. クラスタに という名前の名前空間を作成します。

  3. サンプル Prometheus アプリをダウンロードします。

gsutil cp gs://spls/gsp510/prometheus-app.yaml .
  1. <todo> セクション(35~38 行目)を次の構成で更新します。

    • containers.image: nilebox/prometheus-example-app:latest
    • containers.name: prometheus-test
    • ports.name: metrics
  2. GKE クラスタの 名前空間にアプリケーションをデプロイします。

  3. pod-monitoring.yaml ファイルをダウンロードします。

gsutil cp gs://spls/gsp510/pod-monitoring.yaml .
  1. <todo> セクション(18~24 行目)を次の構成で更新します。

    • metadata.name: prometheus-test
    • labels.app.kubernetes.io/name: prometheus-test
    • matchLabels.app: prometheus-test
    • endpoints.interval:
  2. Pod モニタリング リソースを GKE クラスタの 名前空間に適用します。

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

GKE クラスタでマネージド Prometheus を有効にする

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

Cymbal Shops の開発チームは、新しいアプリケーション コードをクラスタに継続的にリリースする予定で、それを本番環境にデプロイする役割をあなたが担うことになります。このセクションでは、Kubernetes マニフェストをクラスタにデプロイし、問題を調査します。

  1. デモ用デプロイ マニフェスト ファイルをダウンロードします。
gsutil cp -r gs://spls/gsp510/hello-app/ .
  1. helloweb-deployment.yaml マニフェスト ファイルから、GKE クラスタの 名前空間にデプロイを作成します。マニフェスト ファイルは hello-app/manifests フォルダにあります。

  2. デプロイが作成されたことを確認し、helloweb デプロイの詳細ページに移動します。次のようなエラーが表示されます。

無効なイメージ名エラー

このエラーは、先ほどデプロイしたマニフェストのイメージ名が無効であることが原因のようです。イメージ名を修正する前に、ログベースの指標とアラート ポリシーを作成し、今後この問題が再発した場合にチームに通知できるようにします。

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

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

タスク 4. ログベースの指標とアラート ポリシーを作成する

Cymbal Shops は、ログベースの指標とアラート ポリシーをいくつか設定することにより、Kubernetes Pod で発生したエラーと警告の数を集計し、エラーの数が一定のしきい値を超えた場合のアラート メカニズムをクラスタに設定したいと考えています。このセクションでは、それらの指標とアラート ポリシーを構築する知識があることをチームに実証します。

ログベースの指標を作成する

  1. ログ エクスプローラで、前のセクションで確認したクラスタ内の警告 / エラーを表示するクエリを作成します。
ヒント: クエリでは、リソースタイプと重大度をそれぞれ 1 つだけ選択してください。

クエリが正しい場合、実行時に次のエラーがログに表示されます。

Error: InvalidImageName Failed to apply default image tag "<todo>": couldn't parse image reference "<todo>": invalid reference format
  1. このクエリからログベースの指標を作成します。指標タイプとしてカウンタを、ログ指標の名前として pod-image-errors を使用します。

アラート ポリシーを作成する

  1. 先ほど作成したログベースの指標に基づいてアラート ポリシーを作成します。以下の詳細を使用してポリシーを構成します。
    • ローリング ウィンドウ: 10 分
    • ローリング ウィンドウ関数: Count
    • 時系列集計: Sum
    • 条件タイプ: しきい値
    • アラートトリガー: 任意の時系列の違反
    • しきい値の位置: しきい値より上
    • しきい値: 0
    • 通知チャンネルを使用: 無効
    • アラート ポリシー名: Pod Error Alert

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

ログベースの指標とアラート ポリシーを作成する

タスク 5. アプリを更新して再デプロイする

開発チームは、エラーが発生した場合にクラスタ上のデプロイを削除および更新する知識があることをあなたに実証してほしいと考えています。このセクションでは、正しいイメージ参照を使用して Kubernetes マニフェストを更新し、デプロイを削除して、更新されたアプリケーションをクラスタにデプロイします。

  1. helloweb-deployment.yaml デプロイ マニフェストの image セクションにある <todo> を、次のイメージに置き換えます。

    • us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
  2. クラスタから helloweb デプロイを削除します。

  3. 更新された helloweb-deployment.yaml マニフェストを 名前空間のクラスタにデプロイします。

エラーなしで適切にデプロイされたことを確認してください。Kubernetes ワークロード ページは次のようになります。

エラーなしで helloweb がデプロイされている

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

アプリを更新して再デプロイする

タスク 6. コードをコンテナ化してクラスタにデプロイする

最後に、Cymbal Shops の e コマース戦略の一環として、アプリケーション チームからコードが提供されます。あなたは、そのコードをコンテナ化してレジストリに保存し、そのコードの最新バージョンでクラスタを更新する必要があります。

このセクションでは、アプリケーション コードをコンテナ化して、Artifact Registry でイメージを更新し、そのイメージをクラスタのイメージに設定します。チームは、Artifact Registry に という名前のリポジトリを持っており、これには Docker の hello-app サンプルアプリのコンテナ化されたバージョンが含まれています。あなたは、ビルド用のコードをローカルで更新し、新しいバージョンをリポジトリに push します。

  1. hello-app ディレクトリで、main.go ファイルを更新し、49 行目で Version: 2.0.0 が使用されるようにします。

  2. hello-app/Dockerfile を使用し、v2 タグを使用して Docker イメージを作成します。

注: こちらに記載されている Artifact Registry の命名規則に従ってください。
  1. 新しくビルドした Docker イメージを、v2 タグを使用して Artifact Registry 内のリポジトリに push します。

  2. Artifact Registry に push した v2 イメージが反映されるよう、helloweb デプロイのイメージを設定します。

  3. helloweb デプロイを という名前の LoadBalancer サービスにポート 8080 で公開し、コンテナのターゲット ポートを Dockerfile で指定されたポートに設定します。

  4. サービスの外部ロードバランサの IP アドレスに移動すると、サービスから次のテキストが返されます。

Hello, world! Version: 2.0.0 Hostname: helloweb-6fc7476576-cvv5f 注: ウェブページの読み込みに数分かかることがあります。

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

コードをコンテナ化してクラスタにデプロイする

お疲れさまでした

これで完了です。このラボでは、一連の構成に基づいて GKE クラスタを作成し、Prometheus のマネージド コレクションを有効にするスキルを確認しました。さらに、クラスタで発生したエラーのトラブルシューティング、ログベースの指標とアラート ポリシーの作成、Kubernetes マニフェストの更新による問題の修正も行いました。最後に、アプリケーション コードをコンテナ化し、Docker を使用して新しいビルドを Artifact Registry 内のリポジトリに push した後、新しいイメージが反映されるようクラスタを更新し、クラスタでサービスを公開しました。これで、独自の環境で Kubernetes の管理を始める準備が整いました。

次のスキルバッジを獲得する

このセルフペース ラボは、「Google Cloud での Kubernetes の管理」スキルバッジ クエストの一部です。完了すると成果が認められて上のようなバッジが贈られます。獲得したバッジを履歴書やソーシャル プラットフォームに記載し、#GoogleCloudBadge を使用して成果を公表しましょう。

このスキルバッジ クエストは、Google Cloud のハイブリッドおよびマルチクラウドのクラウド アーキテクト向け学習プログラムの一部です。学習プログラムの他のスキルバッジ クエストを修了済みの場合は、他の 20 以上の登録可能なスキルバッジ クエストを Google Cloud Skills Boost カタログで検索してみてください。

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

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

マニュアルの最終更新日: 2023 年 8 月 11 日

ラボの最終テスト日: 2023 年 8 月 11 日

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

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。