arrow_back

Kubernetes Engine: Qwik Start

参加 ログイン

Kubernetes Engine: Qwik Start

30分 クレジット: 1

GSP100

Google Cloud セルフペース ラボ

概要

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

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

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

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

Google Cloud での Kubernetes の使用

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

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

設定と要件

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

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

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

必要なもの

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

  • 標準的なインターネット ブラウザ(Chrome を推奨)
  • ラボを完了するために十分な時間

注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、ラボでは使用しないでください。

注: Chrome OS デバイスを使用している場合は、シークレット ウィンドウを開いてこのラボを実行してください。

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

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

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

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

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

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

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

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

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

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

Google Cloud Shell の有効化

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

GCP Console の右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。

Cloud Shell アイコン

[続行] をクリックします。

cloudshell_continue

環境のプロビジョニングと接続には少し時間がかかります。接続すると、すでに認証されており、プロジェクトは PROJECT_ID に設定されています。例えば:

Cloud Shell 端末

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

次のコマンドを使用すると、有効なアカウント名を一覧表示できます。

gcloud auth list

出力:

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

次のコマンドを使用すると、プロジェクト ID を一覧表示できます。

gcloud config list project
	

出力:

[core]
project = <project_ID>
	

出力例:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

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

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

  1. Cloud Shell で新しいセッションを開始し、以下のコマンドを実行して、デフォルトのコンピューティング ゾーンを us-central1-a に設定します。

    gcloud config set compute/zone us-central1-a
    

    出力例(コピーしないでください):

    Updated property [compute/zone].
    

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

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

注: クラスタ名は、文字で始まり英数字で終わる 40 文字以下のものにする必要があります。
  1. クラスタを作成するには、次のコマンドを実行します。[CLUSTER-NAME] は、クラスタに付ける名前(たとえば my-cluster)に置き換えてください。

    gcloud container clusters create [CLUSTER-NAME]
    

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

    出力例(コピーしないでください):

    NAME        LOCATION       ...   NODE_VERSION  NUM_NODES  STATUS
    my-cluster  us-central1-a  ...   1.16.13-gke.401  3          RUNNING
    

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

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

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

  1. クラスタを認証するには、次のコマンドを実行します。[CLUSTER-NAME] はクラスタの名前に置き換えてください。

    gcloud container clusters get-credentials [CLUSTER-NAME]
    

    出力例(コピーしないでください):

    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. kubectl get を実行して、hello-server Service について確認します。

    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       <none>           433/TCP           5m13s
    

    注: 外部 IP アドレスの生成には数分かかることがあります。EXTERNAL-IP 列のステータスが pending である場合は、前のコマンドをもう一度実行します。

  4. ウェブブラウザでアプリケーションを表示します。新しいタブを開き、以下のアドレスを入力します。[EXTERNAL IP]hello-serverEXTERNAL-IP に置き換えてください。

    http://[EXTERNAL-IP]:8080
    

    想定される出力:

    output.png

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

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

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

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

    クラスタの削除には数分かかる場合があります。削除された GKE クラスタについて詳しくは、こちらのドキュメントをご覧ください。

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

お疲れさまでした

これで、コンテナ化されたアプリケーションが Kubernetes Engine にデプロイされました。

クエストを完了する

5edc9b3763bbb596.png GCP_Essentials_125x135_new.png vm-migration.png 6d0798e24a18671b.png

次は、「ベースライン: インフラストラクチャ」、「Google Cloud の基礎」、「Google Cloud の Kubernetes」、「VM Migration」の各クエストに進みましょう。クエストとは学習パスを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、次のクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なその他の Qwiklabs のクエストもご確認ください

次のステップと詳細情報

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

Google Cloud Training & Certification

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

マニュアルの最終更新日: 2020 年 11 月 3 日
ラボの最終テスト日: 2020 年 11 月 3 日

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