700 以上のラボとコースにアクセス

Hello Node Kubernetes

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

GSP005

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

概要

このハンズオンラボでは、これまで作成してきたコードを使って Kubernetes で実行される(Kubernetes Engine で動作する)複製アプリケーションを作成します。コードは、シンプルな Hello World node.js アプリケーションです。

次の図には、このラボで学習するさまざまな内容が示されており、各部がどう関連しているかの理解に役立ちます。図を参照しながら進めれば、終了する頃には内容をすべて理解できるようになります(現時点で理解できなくても問題ありません)。

Kubernetes コンポーネントのフロー図

Kubernetes はオープンソースのプロジェクト(kubernetes.io から入手可能)で、ノートパソコンから可用性の高いマルチノード クラスタ、パブリック クラウドからオンプレミスのデプロイ、仮想マシンからベアメタルまで、さまざまな環境で実行できます。

このラボでは、Kubernetes Engine(Google がホストし、Compute Engine で実行される Kubernetes の 1 バージョン)などのマネージド環境を使用するため、基盤となるインフラストラクチャの設定を気にせずに Kubernetes の操作に集中できます。

学習内容

  • Node.js サーバーを作成する。
  • Docker コンテナ イメージを作成する。
  • コンテナ クラスタを作成する。
  • Kubernetes Pod を作成する。
  • サービスをスケールアップする。

前提条件

  • Linux の標準的なテキスト エディタ(vimemacsnano など)の使用経験があると役に立ちます。

根底にあるコンセプトを理解できるよう、コマンドは手動で入力することをおすすめしますが、多くのラボで、必要なコマンドが含まれたコードブロックが提供されています。コードブロックのコマンドをコピーして、該当する場所に貼り付けることもできます。

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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. Node.js アプリケーションを作成する

1. Cloud Shell を使用して、Kubernetes Engine にデプロイするシンプルな Node.js サーバーを作成します。

vi server.js
  1. エディタを開きます。
i
  1. 次の内容をファイルに追加します。
var http = require('http'); var handleRequest = function(request, response) { response.writeHead(200); response.end("Hello World!"); } var www = http.createServer(handleRequest); www.listen(8080); 注: ここでは vi を使用していますが、Cloud Shell では nanoemacs も使用できます。Cloud Shell の仕組みに関するガイドの説明に沿って、CloudShell のウェブエディタ機能を使用することもできます。
  1. Esc キーを押してから、次のように入力して、server.js ファイルを保存します。
:wq
  1. Cloud Shell には node 実行可能ファイルがインストールされており、このコマンドでノードサーバーを起動することができます(このコマンドによる出力はありません)。
node server.js
  1. Cloud Shell に組み込まれたウェブ プレビュー機能を使用して、新しいブラウザタブを開き、起動したインスタンスに対するリクエストをポート 8080 でプロキシ サーバーに送信します。

展開した [ウェブでプレビュー] メニューでハイライト表示されている [ポート 8080 でプレビュー]

新しいブラウザタブが開き、結果が表示されます。

「Hello World!」というメッセージが表示されている結果ページ

  1. 続行する前に、Cloud Shell に戻り、Ctrl+C キーを押して実行中のノードサーバーを停止します。

次に、このアプリケーションを Docker コンテナにパッケージ化します。

タスク 2. Docker コンテナ イメージを作成する

  1. 構築するイメージについて記述した Dockerfile を作成します。Docker コンテナ イメージは他の既存のイメージから拡張することができるため、今回も既存の Node イメージから拡張します。
vi Dockerfile
  1. エディタを開きます。
i
  1. 次の内容を追加します。
FROM node:6.9.2 EXPOSE 8080 COPY server.js . CMD ["node", "server.js"]

この Docker イメージの「レシピ」は次のようになります。

  • Docker Hub にある node イメージから起動する
  • ポート 8080 を公開する
  • server.js ファイルをイメージにコピーする
  • 以前に行ったように、手動でノードサーバーを起動する
  1. Esc キーを押してから、次のように入力し、この Dockerfile を保存します。
:wq
  1. 次のコマンドでイメージをビルドします。
docker build -t hello-node:v1 .

すべてをダウンロードして展開するには時間がかかりますが、イメージ作成の進行状況は進捗バーで確認できます。

完了したら、新たに作成したコンテナ イメージから Docker コンテナをデーモンとしてポート 8080 で実行して、イメージをローカルでテストします。

  1. 次のコマンドで Docker コンテナを実行します。
docker run -d -p 8080:8080 hello-node:v1

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

325301e6b2bffd1d0049c621866831316d653c0b25a496d04ce0ec6854cb7998
  1. この結果を確認するには、Cloud Shell のウェブ プレビュー機能を使用します。または Cloud Shell で curl を使用します。
curl http://localhost:8080

次のような出力が表示されます。

Hello World! 注: docker run コマンドの詳細については、Docker run リファレンスをご覧ください。

次に、実行中のコンテナを停止します。

  1. 次のコマンドを実行して、Docker コンテナ ID を確認します。
docker ps

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

CONTAINER ID IMAGE COMMAND 2c66d0efcbd4 hello-node:v1 "/bin/sh -c 'node
  1. 次のコマンドの [CONTAINER ID] を前のステップで取得したコンテナ ID に置き換えて実行し、コンテナを停止します。
docker stop [CONTAINER ID]

コンソール出力は次のようになります(実際のコンテナ ID になります)。

2c66d0efcbd4

イメージが意図したとおりに機能するようになったので、これを Docker イメージ用の非公開リポジトリである Google Artifact Registry に push します。このリポジトリには Google Cloud プロジェクトからアクセスできます。

  1. まず、Artifact Registry にリポジトリを作成する必要があります。これを仮に my-docker-repo とします。次のコマンドを実行します。
gcloud artifacts repositories create my-docker-repo \ --repository-format=docker \ --location={{{ project_0.default_region | YOUR_REGION }}} \ --project={{{ project_0.project_id | YOUR_PROJECT_ID }}}
  1. 次のコマンドを実行して、Docker 認証を構成します。
gcloud auth configure-docker

[Do you want to continue (Y/n)?] というプロンプトが表示されたら、「Y」と入力します。

  1. イメージにリポジトリ名のタグを付けるには、次のコマンドを実行します。PROJECT_ID は、コンソールまたはラボの [ラボの詳細] セクションに表示されるプロジェクト ID に置き換えます。
docker tag hello-node:v1 {{{ project_0.default_region | YOUR_REGION }}}-docker.pkg.dev/{{{ project_0.project_id | YOUR_PROJECT_ID }}}/my-docker-repo/hello-node:v1
  1. 次のコマンドを実行して、コンテナ イメージをリポジトリに push します。
docker push {{{ project_0.default_region | YOUR_REGION }}}-docker.pkg.dev/{{{ project_0.project_id | YOUR_PROJECT_ID }}}/my-docker-repo/hello-node:v1

初回の push は、完了するまで数分かかることがあります。進捗状況は進行状況バーで確認できます。

The push refers to a repository [pkg.dev/qwiklabs-gcp-6h281a111f098/hello-node] ba6ca48af64e: Pushed 381c97ba7dc3: Pushed 604c78617f34: Pushed fa18e5ffd316: Pushed 0a5e2b2ddeaa: Pushed 53c779688d06: Pushed 60a0858edcd5: Pushed b6ca02dfe5e6: Pushed v1: digest: sha256:8a9349a355c8e06a48a1e8906652b9259bba6d594097f115060acca8e3e941a2 size: 2002
  1. コンテナ イメージがコンソールに一覧表示されます。ナビゲーション メニュー > [Artifact Registry] をクリックします。

これで、プロジェクト全体で使用できる Docker イメージができました。このイメージには Kubernetes でアクセスし、オーケストレートできます。

注: Artifact Registry の推奨される操作方法を使用しました。この方法では、使用するリージョンが明確に指定されます。詳細については、Artifact Registry への push と pull についてのドキュメントをご覧ください。

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

これで、Kubernetes Engine クラスタを作成する準備が整いました。クラスタは Google がホストしている Kubernetes マスター API サーバーと一連のワーカーノードで構成されます。ワーカーノードは Compute Engine 仮想マシンです。

  1. gcloud を使用してプロジェクトを設定していることを確認します(PROJECT_ID は、コンソールまたはラボの [ラボの] セクションに表示されるプロジェクト ID に置き換えます)。
gcloud config set project PROJECT_ID
  1. 2 つの e2-medium ノードがあるクラスタを作成します(完了するまでに数分かかります)。
gcloud container clusters create hello-world \ --num-nodes 2 \ --machine-type e2-medium \ --zone "{{{project_0.default_zone|ZONE}}}"

クラスタのビルド時に表示される警告は無視してかまいません。

コンソール出力は次のようになります。

Creating cluster hello-world...done. Created [https://container.googleapis.com/v1/projects/PROJECT_ID/zones/"{{{project_0.default_zone|ZONE}}}"/clusters/hello-world]. kubeconfig entry generated for hello-world. NAME ZONE MASTER_VERSION MASTER_IP MACHINE_TYPE STATUS hello-world "{{{project_0.default_zone|ZONE}}}" 1.5.7 146.148.46.124 e2-medium RUNNING

または、コンソールでナビゲーション メニューを開き、[Kubernetes Engine] > [Kubernetes クラスタ] > [作成] を選択して、このクラスタを作成することもできます。

注: クラスタは、Artifact Registry で使用されるストレージ バケットと同じゾーンに作成することをおすすめします(前のステップを参照してください)。

ナビゲーション メニュー > [Kubernetes Engine] を選択すると、Kubernetes Engine を搭載した、完全版の Kubernetes クラスタができていることを確認できます。

それでは、コンテナ化されたアプリケーションを Kubernetes クラスタにデプロイしてみましょう。ここからは kubectl コマンドライン(Cloud Shell 環境で設定済み)を使用します。

下の [進行状況を確認] をクリックして、ラボの進行状況を確認します。

クラスタを作成する

タスク 4. Pod を作成する

Kubernetes Pod は管理とネットワーキングを目的に結合されたコンテナのグループで、1 つ以上のコンテナを含めることができます。ここでは、非公開の Artifact Registry に保存されている Node.js イメージで構築した 1 つのコンテナを使用します。このコンテナは、コンテンツの提供にポート 8080 を使用します。

  1. kubectl run コマンドで Pod を作成します(PROJECT_ID をコンソールまたはラボの [接続の詳細] セクションに表示されるプロジェクト ID に置き換えます)。
kubectl create deployment hello-node \ --image={{{ project_0.default_region}}}-docker.pkg.dev/PROJECT_ID/my-docker-repo/hello-node:v1

出力:

deployment.apps/hello-node created

これで Deployment オブジェクトが作成されました。このオブジェクトは、Pod を作成してスケーリングするためのおすすめの方法です。ここでは、hello-node:v1 イメージを実行する 1 つの Pod レプリカを新しい Deployment で管理します。

  1. Deployment を表示するには、次のコマンドを実行します。
kubectl get deployments

出力:

NAME READY UP-TO-DATE AVAILABLE AGE hello-node 1/1 1 1 1m36s
  1. Deployment によって作成された Pod を表示するには、次のコマンドを実行します。
kubectl get pods

出力:

NAME READY STATUS RESTARTS AGE hello-node-714049816-ztzrb 1/1 Running 0 6m

ここで、便利な kubectl コマンドをいくつかお伝えします。いずれもクラスタの状態を変更しません。リファレンス ドキュメントの全文については、コマンドライン ツール(kubectl)をご覧ください。

kubectl cluster-info kubectl config view

トラブルシューティング用:

kubectl get events kubectl logs <pod-name>

ここで、Pod に外部からアクセスできるようにする必要があります。

下の [進行状況を確認] をクリックして、ラボの進行状況を確認します。

Pod を作成する

タスク 5. 外部トラフィックを許可する

デフォルトでは、Pod にはクラスタ内の内部 IP からしかアクセスできません。hello-node コンテナに Kubernetes 仮想ネットワークの外部からアクセスできるようにするには、Pod を Kubernetes Service として公開する必要があります。

  1. Cloud Shell から、kubectl expose コマンドを --type="LoadBalancer" フラグと組み合わせて使用すると、Pod をインターネットで公開できます。外部からアクセスできる IP を作成するには、このフラグが必要です。
kubectl expose deployment hello-node --type="LoadBalancer" --port=8080

出力:

service/hello-node exposed

このコマンドで使用しているフラグは、基盤となるインフラストラクチャで提供されるロードバランサ(この場合は Compute Engine のロードバランサ)を使うよう指定しています。Pod を直接公開するのではなく、Deployment を公開していることに注意してください。これによって、Deployment で管理されるすべての Pod でトラフィックをロードバランスする Service が作成されます(ここでは 1 つの Pod だけですが、後でレプリカを追加します)。

Kubernetes マスターによってロードバランサ、それに関連する Compute Engine 転送ルール、ターゲット プール、ファイアウォール ルールが作成され、Google Cloud の外部からこの Service に完全にアクセスできるようになります。

  1. この Service のパブリック IP アドレスを確認するには、kubectl をリクエストしてすべてのクラスタ Service を一覧で表示します。
kubectl get services

次のような出力が表示されます。

NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node 10.3.250.149 104.154.90.147 8080/TCP 1m kubernetes 10.3.240.1 < none > 443/TCP 5m

hello-node Service に対して 2 つの IP アドレスが表示されます。いずれもポート 8080 を使用しています。CLUSTER-IP は内部 IP で、Cloud Virtual Network 内でのみ表示されます。EXTERNAL-IP はロードバランスされた外部 IP です。

注: EXTERNAL-IP が表示され、使用できるようになるまでには数分かかることがあります。EXTERNAL-IP がない場合は、数分待ってからコマンドを再度実行します。
  1. ブラウザでアドレス http://<EXTERNAL_IP>:8080 と入力すれば、対象のサービスにアクセスできるようになっています。

Hello World! ページ

この時点で、コンテナと Kubernetes を利用することで、ワークロードを実行するホストを指定する必要がない、Service のモニタリングと再起動ができるなどのメリットが得られるようになりました。それでは、新しい Kubernetes インフラストラクチャを利用することで得られるその他のメリットについて見ていきましょう。

下の [進行状況を確認] をクリックして、ラボの進行状況を確認します。

Kubernetes Service を作成する

タスク 6. Service をスケールアップする

Kubernetes の優れた特長の一つは、アプリケーションのスケールが容易なことです。急に容量を増やす必要が生じたとしても、レプリケーション コントローラに、Pod の新しい数のレプリカを管理するよう指示することができます。

  1. Pod のレプリカ数を設定します。
kubectl scale deployment hello-node --replicas=4

出力:

deployment.extensions/hello-node scaled
  1. 更新された Deployment の説明をリクエストします。
kubectl get deployment

出力:

NAME READY UP-TO-DATE AVAILABLE AGE hello-node 4/4 4 4 16m

4 つのレプリカがすべて作成されるまで、上記のコマンドを再実行します。

  1. すべての Pod を一覧表示します。
kubectl get pods

次のような出力が表示されます。

NAME READY STATUS RESTARTS AGE hello-node-714049816-g4azy 1/1 Running 0 1m hello-node-714049816-rk0u6 1/1 Running 0 1m hello-node-714049816-sh812 1/1 Running 0 1m hello-node-714049816-ztzrb 1/1 Running 0 16m

ここでは宣言的アプローチを使用しています。新しいインスタンスの起動や停止を行うのではなく、実行するインスタンスの数を宣言します。Kubernetes の調整ループによって、リクエストした内容と実際の状態が一致しているかどうかが照合され、必要に応じて調整が行われます。

次の図に、Kubernetes クラスタの状態をまとめます。

Kubernetes クラスタのフロー図

下の [進行状況を確認] をクリックして、ラボの進行状況を確認します。

Service をスケールアップする

タスク 7. Service へのアップグレードをロールアウトする

本番環境にデプロイしたアプリケーションは、いずれかの時点でバグ修正や追加機能の実装が必要になります。Kubernetes を使用すると、ユーザーに影響を及ぼすことなく、新しいバージョンを本番環境にデプロイすることができます。

  1. まず、server.js を開いてアプリケーションを変更します。
vi server.js i
  1. レスポンス メッセージを更新します。
response.end("Hello Kubernetes World!");
  1. Esc キーを押してから、次のように入力して、server.js ファイルを保存します。
:wq

これで、インクリメントされたタグ(この場合は v2)を含む新しいコンテナ イメージを構築し、レジストリに公開できます。

  1. 次のコマンドを実行します。PROJECT_ID はラボのプロジェクト ID に置き換えます。
docker build -t hello-node:v2 . docker tag hello-node:v2 {{{ project_0.default_region | YOUR_REGION }}}-docker.pkg.dev/{{{ project_0.project_id | YOUR_PROJECT_ID }}}/my-docker-repo/hello-node:v2 docker push {{{ project_0.default_region | YOUR_REGION }}}-docker.pkg.dev/{{{ project_0.project_id | YOUR_PROJECT_ID }}}/my-docker-repo/hello-node:v2 注: キャッシュが活用されるため、この更新されたイメージの構築と push は迅速に行われます。

Kubernetes がレプリケーション コントローラを新しいバージョンのアプリケーションにスムーズに更新します。既存の hello-node deployment を編集し、イメージを pkg.dev/PROJECT_ID/hello-node:v1 から pkg.dev/PROJECT_ID/hello-node:v2 に変更して、実行しているコンテナのイメージラベルを更新します。

  1. この操作を行うには、kubectl edit コマンドを使用します。
kubectl edit deployment hello-node

テキスト エディタが開かれ、Deployment の yaml 構成全体が表示されます。ここでは yaml 構成全体を理解する必要はありません。構成の spec.template.spec.containers.image フィールドを更新すれば、新しいイメージで Pod を更新するよう指示することになるというポイントが重要です。

  1. [Spec] > [containers] > [image] を探し、バージョン番号を v1 から v2 に変更します。
# 下のオブジェクトを編集してください。「#」から始まる行はコメントであり、無視されます。 # 空白のファイルを使用すると編集内容が破棄されます。ファイルの保存中にエラーが発生した場合は # ファイルが再び開かれますが、エラーが存在する状態になります。 # apiVersion: extensions/v1beta1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: 2016-03-24T17:55:28Z generation: 3 labels: run: hello-node name: hello-node namespace: default resourceVersion: "151017" selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/hello-node uid: 981fe302-f1e9-11e5-9a78-42010af00005 spec: replicas: 4 selector: matchLabels: run: hello-node strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate template: metadata: creationTimestamp: null labels: run: hello-node spec: containers: - image: pkg.dev/PROJECT_ID/hello-node:v1 ## Update this line ## imagePullPolicy: IfNotPresent name: hello-node ports: - containerPort: 8080 protocol: TCP resources: {} terminationMessagePath: /dev/termination-log dnsPolicy: ClusterFirst restartPolicy: Always securityContext: {} terminationGracePeriodSeconds: 30
  1. 変更を行ったら、このファイルを保存して閉じます。Esc キーを押してから、次のように入力します。
:wq

次のような出力が表示されます。

deployment.extensions/hello-node edited
  1. 次のコマンドを実行して、新しいイメージで Deployment を更新します。
kubectl get deployments

新しいイメージで新しい Pod が作成され、古い Pod は削除されます。

次のような出力が表示されます(上記コマンドの再実行が必要となる場合があります)。

NAME READY UP-TO-DATE AVAILABLE AGE hello-node 4/4 4 4 1h

更新の実行中、ユーザーがサービスを中断する必要はありません。しばらくすると、アプリケーションの新しいバージョンにアクセスできるようになります。ローリング アップデートの詳細については、ローリング アップデートの実行に関するドキュメントをご覧ください。

Kubernetes Engine クラスタを使うと、以上のようなデプロイ、スケーリング、更新の機能のおかげで、インフラストラクチャを気にせずアプリケーションに集中できるようになります。

お疲れさまでした

これで Kubernetes のハンズオンラボが終了しました。ここで学んだのは、このテクノロジーの一部にすぎません。ご自分の Pod、レプリケーション コントローラ、Service を使って実践を継続し、活動状況プローブ(ヘルスチェック)を確認してみてください。Kubernetes API を直接使用することもおすすめします。

次のラボを受講する

Kubernetes Engine によるデプロイの管理を試すか、以下のおすすめのラボをご確認ください。

次のステップと詳細情報

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

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

マニュアルの最終更新日: 2025 年 5 月 8 日

ラボの最終テスト日: 2025 年 5 月 8 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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