arrow_back

Google Kubernetes Engine: Qwik Start

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

Google Kubernetes Engine: Qwik Start

Lab 45分 universal_currency_alt クレジット: 1 show_chart 入門
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP100

Google Cloud セルフペース ラボ

概要

Google Kubernetes Engine(GKE)は、Google のインフラストラクチャを使用して、コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを行うマネージド環境を提供します。GKE 環境は複数のマシン(具体的には Compute Engine インスタンス)で構成されており、これらのマシンがグループ化されてコンテナ クラスタを形成します。

このラボでは、GKE を使用してコンテナを作成し、アプリケーションをデプロイする方法を実践形式で学びます。

目標

このラボでは、次の方法について学びます。

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

GKE によるクラスタ オーケストレーション

GKE では、Kubernetes オープンソース クラスタ管理システムが使用されます。Kubernetes は、コンテナ クラスタを操作するメカニズムを提供します。Kubernetes のコマンドとリソースを使用して、アプリケーションのデプロイや管理、管理タスクの実行やポリシーの設定、デプロイ済みワークロードの状態のモニタリングを行うことができます。

Kubernetes では、頻繁に利用される Google サービスと同じ設計原理が使われており、自動管理、アプリケーション コンテナのモニタリングと稼働状況のプローブ、自動スケーリング、ローリング アップデートなどの機能が、Google サービスと同じように提供されています。コンテナ クラスタでアプリケーションを実行するときに利用するテクノロジーは、本番環境のワークロードをコンテナで 10 年以上実行してきた Google の経験に裏付けられています。

Google Cloud での Kubernetes の使用

GKE クラスタを実行すると、Google Cloud が提供する高度なクラスタ管理機能のメリットも得られます。たとえば、次のようなものが挙げられます。

Kubernetes の基本事項を理解したところで、今度は GKE を使用して、コンテナ化されたアプリケーションを 30 分弱でデプロイする方法を学習しましょう。以下に示す手順に沿ってラボ環境を設定してください。

設定と要件

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

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

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

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

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

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

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

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

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

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

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

Cloud Shell をアクティブにする

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

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

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

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

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

  2. 出力は次のようになります。

出力:

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

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. デフォルトのコンピューティング ゾーンを設定する

コンピューティング ゾーンとは、クラスタとそのリソースが存在するリージョンのおおよその場所を示すものです。たとえば、us-central1-aus-central1 リージョンのゾーンです。

Cloud Shell セッションで、次のコマンドを実行します。

  1. デフォルトのコンピューティング リージョンを設定します。

    gcloud config set compute/region {{{project_0.startup_script.project_region|"REGION"}}}

    想定される出力:

    Updated property [compute/region].
  2. デフォルトのコンピューティング ゾーンを設定します。

    gcloud config set compute/zone {{{project_0.startup_script.project_zone|"ZONE"}}}

    想定される出力:

    Updated property [compute/zone].

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

クラスタは、少なくとも 1 つのクラスタ マスターマシンと、ノードと呼ばれる複数のワーカーマシンで構成されます。ノードは Compute Engine 仮想マシン(VM)インスタンスであり、自身をクラスタの一部にするために必要な Kubernetes プロセスを実行します。

注: クラスタ名は、英文字で始まり英数字で終わる 40 文字以下のものにします。

次のコマンドを実行します。

  • クラスタを作成します。

    gcloud container clusters create --machine-type=e2-medium --zone={{{project_0.startup_script.project_zone|ZONE}}} lab-cluster

出力に含まれる警告は無視してかまいません。クラスタの作成が完了するまで数分かかることがあります。

想定される出力:

NAME: lab-cluster LOCATION: {{{project_0.startup_script.project_zone|ZONE}}} MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 34.67.240.12 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNING

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

タスク 3. クラスタの認証情報を取得する

クラスタの作成が完了したら、そのクラスタとやり取りするために認証情報が必要になります。

  • クラスタで認証します。

    gcloud container clusters get-credentials lab-cluster

    想定される出力:

    Fetching cluster endpoint and auth data. kubeconfig entry generated for my-cluster.

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

ここまでで、クラスタにコンテナ化されたアプリケーションをデプロイする準備ができました。このラボでは、クラスタで hello-app アプリケーションを実行します。

GKE では、クラスタ リソースの作成と管理に Kubernetes オブジェクトを使用します。Kubernetes には、ウェブサーバーのようなステートレス アプリケーションをデプロイするための Deployment オブジェクトが用意されています。インターネットからアプリケーションにアクセスする際のルールとロード バランシングを定義するには、Service オブジェクトを使用します。

  1. hello-app コンテナ イメージから hello-server という新しい Deployment を作成するために、以下の kubectl create コマンドを実行します。

    kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0

    想定される出力:

    deployment.apps/hello-server created

    これで、hello-server を表す Deployment オブジェクトが作成されます。この場合、--image にはデプロイするコンテナ イメージを指定します。上のコマンドでは、Container Registry バケットからサンプル イメージが呼び出されます。gcr.io/google-samples/hello-app:1.0 は、呼び出すイメージのバージョンを指定しています。バージョンが指定されていない場合は、最新バージョンが使用されます。

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 新しい Deployment: hello-server を作成する

  2. Kubernetes Service(アプリケーションを外部トラフィックに公開するための Kubernetes リソース)を作成するために、以下の kubectl expose コマンドを実行します。

    kubectl expose deployment hello-server --type=LoadBalancer --port 8080

    コマンドの内容:

    • --port にはコンテナで公開するポートを指定します。
    • type="LoadBalancer" を渡すことで、コンテナの Compute Engine ロードバランサが作成されます。

    想定される出力:

    service/hello-server exposed
  3. hello-server Service を検査するために、kubectl get を実行します。

    kubectl get service

    想定される出力:

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-server loadBalancer 10.39.244.36 35.202.234.26 8080:31991/TCP 65s kubernetes ClusterIP 10.39.240.1 433/TCP 5m13s 注: 外部 IP アドレスの生成には数分かかることがあります。 EXTERNAL-IP 列のステータスが pending である場合は、前述のコマンドをもう一度実行します。
  4. ウェブブラウザでアプリケーションを表示します。新しいタブを開き、以下のアドレスを入力します。[EXTERNAL IP]hello-serverEXTERNAL-IP に置き換えてください。

    http://[EXTERNAL-IP]:8080

    想定される出力: ブラウザタブに、Hello, world! というメッセージと、バージョンおよびホスト名が表示されます。

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

タスク 5. クラスタを削除する

  1. 次のコマンドを実行してクラスタを削除します。

    gcloud container clusters delete lab-cluster
  2. プロンプトが表示されたら、「Y」と入力して確定します。

    クラスタの削除には数分かかる場合があります。削除された GKE クラスタについて詳しくは、Google Kubernetes Engine(GKE)のクラスタの削除に関する記事をご覧ください。

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

お疲れさまでした

これで、コンテナ化されたアプリケーションが Google Kubernetes Engine にデプロイされました。このラボでは、GKE クラスタの作成、コンテナ化されたアプリケーションのクラスタへのデプロイ、クラスタの削除を行いました。この知識を応用すると、GKE で独自のアプリケーションをデプロイできます。

次のステップと詳細情報

このラボは Qwik Start と呼ばれるラボシリーズの一部です。これらのラボでは、Google Cloud で利用できる多くの機能を体験できます。Google Cloud Skills Boost カタログで「Qwik Start」を検索し、興味のあるラボを探してみてください。

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

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

マニュアルの最終更新日: 2024 年 2 月 13 日

ラボの最終テスト日: 2024 年 1 月 26 日

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