Create a Kubernetes Cluster

進行状況を確認

/ 5

Build and Deploy Nodejs App (hello-node)

進行状況を確認

/ 5

Allow external traffic to hello-node deployment

進行状況を確認

/ 5

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。

GSP015

Google Cloud セルフペース ラボ

概要

Google Kubernetes Engine を使用すると、Docker コンテナをクラウドで簡単に実行できます。Google Kubernetes Engine は、オープンソースのコンテナ スケジューラである Kubernetes を使用して、クラスタを常に意図したとおりの状態で実行されるようにします。

このラボでは、コンテナを起動する方法と、Google Kubernetes Engine でそのコンテナのレプリカを起動する方法を学びます。

設定と要件

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

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

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

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

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

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 右側の [ラボの設定とアクセス] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • このラボで使用する一時的な認証情報(ユーザー名とパスワード)
    • このラボを行うために必要なその他の情報(ある場合)

    ラボのタイマーはページの上部に表示され、残り時間が示されます。

  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示された場合は、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの設定とアクセス] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの設定とアクセス] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで指定された認証情報を使用する必要があります。ご自身の Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後のページはクリックして先に進みます。

    • 利用規約に同意します。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

しばらくすると、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニューのアイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

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

このセクションでは、Google Kubernetes Engine クラスタを作成します。

コンピューティング ゾーンを設定する

Cloud Shell は、ブラウザから仮想マシンを操作できるターミナルです。Google Cloud ツールのほか、エディタやコンパイラなど、アプリケーションの開発やデバッグに役立つツールがあらかじめインストールされています。

クラスタの作成には gcloud コマンドを使用します。まず、クラスタ内の仮想マシンが正しいリージョンに作成されるように、コンピューティング ゾーンを設定します。これには、gcloud config set compute/zone コマンドを使用します。

  • Cloud Shell で次のように入力します。
gcloud config set compute/zone {{{project_0.default_zone|ZONE}}}

リージョンとゾーンについて

一部の Compute Engine リソースは、リージョンまたはゾーンに属します。リージョンとは、リソースを実行できる特定の地理的位置です。各リージョンには、1 つまたは複数のゾーンがあります。たとえば、リージョン us-central1 は米国中部のリージョンを指し、ゾーン us-central1-aus-central1-bus-central1-cus-central1-f が含まれています。

リージョン ゾーン
米国西部 us-west1-a、us-west1-b
米国中部 us-central1-a、us-central1-b、us-central1-d、us-central1-f
米国東部 us-east1-b、us-east1-c、us-east1-d
西ヨーロッパ europe-west1-b、europe-west1-c、europe-west1-d
東アジア asia-east1-a、asia-east1-b、asia-east1-c

ゾーン内にあるリソースをゾーンリソースと呼びます。仮想マシン インスタンスと永続ディスクはゾーンに属します。永続ディスクを仮想マシン インスタンスにアタッチするには、両方のリソースを同じゾーン内に配置する必要があります。同様に、インスタンスに静的 IP アドレスを割り当てるには、インスタンスが静的 IP と同じリージョンに存在している必要があります。

Compute Engine ページのリージョンとゾーンのドキュメントで、リージョンとゾーンの詳細と一覧をご確認ください。

新しいクラスタを作成する

  • 次のような gcloud コマンドを使用して、新しいコンテナ クラスタを作成します。
gcloud container clusters create hello-world

このコマンドは、3 つのノード(VM)を持つ hello-world という名前の新しいクラスタを作成します。ノードの数、デフォルトの権限、その他の変数を変更するには、追加のフラグを付けてこのコマンドを構成します。詳細については、gcloud container clusters create のリファレンスをご覧ください。

注: gcloud container clusters create の実行時にエラーが発生した場合は、Google Kubernetes Engine API と Compute Engine API の両方が有効になっているかを確認してください。

クラスタの起動には数分かかる場合があります。起動すると、次のような出力が Cloud Shell に表示されます。

NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS hello-world {{{project_0.default_zone|ZONE}}} 1.12.7-gke.10 35.239.64.154 e2-medium 1.12.7-gke.10 3 RUNNING

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

Kubernetes クラスタを作成する

タスク 2. Hello World アプリをビルドして公開する

次に、コードを含むコンテナをビルドして公開します。コンテナのビルドには Docker を、安全に公開するには Google Artifact Registry を使用します。

プロジェクト ID を設定する

このラボの多くのコマンドでは、プロジェクト ID を使用します。プロジェクト ID は Cloud Shell の環境変数に保存されているため、簡単に利用できます。環境変数は次のコマンドで確認します。

echo $DEVSHELL_PROJECT_ID

タスク 3. サンプルコードを取得する

  1. 次のコマンドを実行してサンプルのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samples
  1. ディレクトリを変更します。
cd kubernetes-engine-samples/quickstarts/hello-app

コンテナをビルドする

Docker コンテナは、Dockerfile を使用してビルドします。サンプルコードには、そのまま使用できる基本的な Dockerfile が含まれています。

cat Dockerfile

ファイルの内容は次のとおりです。

... FROM golang:1.26.2 AS builder WORKDIR /app RUN go mod init hello-app COPY *.go ./ RUN CGO_ENABLED=0 GOOS=linux go build -o /hello-app FROM gcr.io/distroless/static-debian12 WORKDIR / COPY --from=builder /hello-app /hello-app ENV PORT=8080 USER nonroot:nonroot CMD ["/hello-app"]
  • コンテナをビルドするには、次のコマンドを実行します。
docker build -t gcr.io/$DEVSHELL_PROJECT_ID/hello-app:1.0 .

これにより、Docker コンテナ イメージがビルドされ、ローカルに保存されます。

コンテナを公開する

Kubernetes がイメージにアクセスできるようにするには、イメージを Artifact Registry に保存する必要があります。

  • 次のコマンドを実行して、コンテナ イメージを公開します。
gcloud docker -- push gcr.io/$DEVSHELL_PROJECT_ID/hello-app:1.0

タスク 4. Hello World アプリをデプロイする

クラスタが稼働し、アプリケーションがビルドされたので、次はアプリケーションをデプロイします。

Deployment を作成する

Deployment は、アプリケーションが常に実行されている状態を維持する、Kubernetes の主要なコンポーネントです。Deployment はクラスタ上の Pod のセットをスケジュールして管理します。Pod は、1 つ以上のコンテナをひとまとめにしたものです。コンテナを一括で管理する必要がある場合や、コンテナがネットワーク要件を共有している場合に使用します。このラボで使用する Pod にはコンテナが 1 つのみ含まれます。

通常は Deployment の構成を含む YAML ファイルを作成しますが、このラボではこの手順をスキップしてコマンドラインで直接 Deployment を作成します。

  1. kubectl を使用して Pod を作成します。
kubectl create deployment hello-app --image=gcr.io/$DEVSHELL_PROJECT_ID/hello-app:1.0 注: コマンドの非推奨に関する警告が表示されても無視してかまいません。

このコマンドは、クラスタ内のいずれかのノードで Docker イメージのコピーを 1 つ起動します。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

Hello World アプリ(hello-app)をビルドしてデプロイする
  1. kubectl を使用して作成した Deployment を確認するには、次のコマンドを実行します。
kubectl get deployments

次のような結果が返されます。

NAME READY UP-TO-DATE AVAILABLE AGE hello-app 1/1 1 1 30s
  1. kubectl を使用して Pod が実行されていることも確認できます。
kubectl get pods

次のような結果が返されます。

NAME READY STATUS RESTARTS AGE hello-app-3375482827-7hs3q 1/1 Running 0 1m

外部トラフィックを許可する

デフォルトでは、Pod にはクラスタ内の他のマシンからのみアクセスできます。作成したアプリコンテナを利用できるようにするには、Service として公開する必要があります。

通常は Service の構成を含む YAML ファイルを作成しますが、このラボではこの手順をスキップしてコマンドラインで直接 Deployment を作成します。

  1. 次の kubectl expose コマンドを実行して、Deployment を公開します。
kubectl expose deployment hello-app --name=hello-app --type=LoadBalancer --port=80 --target-port=8080

kubectl expose は、Service、ロードバランサの転送ルール、外部トラフィックを Pod に送信できるようにするファイアウォール ルールを作成します。--type=LoadBalancer フラグは、外部トラフィックを受け入れる Google Cloud ネットワーク ロードバランサを作成します。

  1. Service の IP アドレスを取得するには、次のコマンドを実行します。
kubectl get svc hello-app

次のような結果が返されます。

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-app LoadBalancer 10.3.247.85 104.198.151.208 80/TCP 8m : External-IP が入力されるまで数分かかることがあります。External-IP<pending> と表示された場合は、30 秒待ってから再試行してください。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。

hello-app の Deployment への外部トラフィックを許可する

Deployment を確認する

新しいブラウザ ウィンドウまたはタブを開き、前の手順で確認した外部 IP アドレスにアクセスします。サンプルコードが動作しているのを確認できるはずです。

「Hello Kubernetes!」と表示されているウェブページ

タスク 5. 理解度チェック

今回のラボで学習した内容の理解を深めていただけるよう、以下の選択式問題を用意しました。正解を目指して頑張ってください。

お疲れさまでした

Google Kubernetes Engine を使用すると、Google Cloud 上で効率的かつ柔軟にコンテナを実行できます。Kubernetes は、独自のハードウェアや他のクラウド プロバイダでも使用できます。

このラボでは単一のコンテナのみ使用しましたが、複数のコンテナ環境や、1 つのコンテナの複数インスタンスを構築するのも簡単です。

学習した内容

  • Google Kubernetes Engine
  • Google Kubernetes Engine で、コンテナ化されたシンプルなアプリをビルドして起動する方法

次のラボを受講する

次のようなラボもお試しください。

次のステップと詳細情報

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

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

マニュアルの最終更新日: 2024 年 12 月 11 日

ラボの最終テスト日: 2024 年 12 月 11 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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