Google Container Engine クイックスタート

このクイックスタートでは、Google Cloud Shell を使用して、シンプルな Node.js サンプルアプリが格納された構築済みの Docker コンテナをデプロイする方法について説明します。

始める前に

次の手順で Google Container Engine API を有効にします。
  1. Google Cloud Platform Console で Container Engine のページにアクセスします。
  2. プロジェクトを作成または選択します。
  3. API と関連サービスが有効になるのを待ちます。 これには数分かかることがあります。
  4. プロジェクトの課金を有効にします。

    課金の有効化

Google Cloud Shell を使用する

kubectl をすぐに使うには、Google Cloud Shell を使用します。Google Cloud Shell は gcloud および kubectl コマンドライン ツールと一緒にプリインストールされます。Google Cloud Shell を起動する手順は次のとおりです。

  1. Google Cloud Platform Console に移動します。
  2. コンソール ウィンドウの上部にある「Google Cloud Shell をアクティブにする」ボタンをクリックします。

    Google Cloud Platform Console 

    コンソールの一番下にある新しいフレームの中で Cloud Shell セッションが開き、コマンドライン プロンプトが表示されます。

    Cloud Shell セッション

gcloud コマンドライン ツールのデフォルトを設定する

  1. デフォルトの Compute Engine ゾーンを設定します。次のコマンドでは、デフォルトのゾーンが us-central1-b として設定されます。

    gcloud config set compute/zone us-central1-b
    


gcloud コマンドライン ツールのデフォルトを表示するには、次のコマンドを実行します。

gcloud config list

コンテナ イメージを実行する

以下の手順でクラスタを作成し、Google Container Registry にある構築済みのコンテナ イメージを使用してシンプルな Node.js サンプルアプリ "Hello Node" を実行します。サンプルアプリのソースコードを表示する場合は、Hello Node コードレビューをご覧ください。

  1. クラスタを作成します(このステップには数分かかることがあります)。

    gcloud container clusters create example-cluster
    
  2. kubectl に認証情報があることを確認します。

    gcloud auth application-default login
    
  3. コンテナを実行します。

    kubectl run hello-node --image=gcr.io/google-samples/node-hello:1.0 --port=8080
    
  4. コンテナを公開します。kubectltype="LoadBalancer オプションは、通常のロードバランサの料金に従って課金されるロードバランサをコンテナ用に提供するよう Google Cloud Platform に対して要求しています。

    kubectl expose deployment hello-node --type="LoadBalancer"
    
  5. hello-node アプリの外部 IP アドレスをコピーします。

    kubectl get service hello-node
    
  6. アプリを表示します(EXTERNAL-IP を前のステップで取得した外部 IP アドレスに置き換えます)。

    http://EXTERNAL-IP:8080
    

クリーンアップ

このクイックスタートで使用したリソースについて、Google Cloud Platform アカウントに課金されないようにする手順は次のとおりです。

  1. 作成したサービスを削除して、サービスを提供するようにプロビジョニングされた負荷分散リソースを削除します。

    kubectl delete service hello-node
    
  2. サービスが終了するまで数分待ってから、次のコマンドを使用して作成したクラスタを削除します。

    gcloud container clusters delete example-cluster
    

次のステップ

Hello Node コードレビュー

Hello Node は、わずか 2 つのファイルで構成される非常にシンプルなアプリです。このセクションでは、これらのファイルについて説明します。

server.js

server.js ファイルは、要求に対する応答としてメッセージ Hello Kubernetes を送信します。

var http = require('http');
var handleRequest = function (req, res) {
  res.writeHead(200);
  res.end('Hello Kubernetes!');
};
var www = http.createServer(handleRequest);
www.listen(process.env.PORT || 8080);

Dockerfile

dockerfile には、構築するイメージを定義し、アプリがリッスンするポートを指定します。

FROM node:6-alpine
EXPOSE 8080
COPY server.js .
CMD node server.js

gcloud コマンドライン ツールをインストールする

Cloud Shell の代わりに、gcloud コマンドライン ツールをローカル コンピュータにインストールすることができます。Container Engine API は、gcloud コマンドライン ツールを使用してクラスタ操作と認証情報の管理を行います。

  1. gcloud コマンドライン ツールに含まれている Google Cloud SDK をインストールします。
  2. gcloud コマンドライン ツールを使用して、kubectl コマンドライン ツールをインストールします。

    gcloud components install kubectl
    

以下のチュートリアルのいずれかを使用し、アプリケーションのビルドからデプロイまでを行ってみてください。

アプリケーションを独自に構築する場合は、最初にコンテナ クラスタを作成します。

Kubernetes と kubectl

Google Container Engine では、コンテナの管理、デプロイ、スケーリングに Kubernetes を使用します。Kubernetes について詳しくは、外部 Kubernetes サイトをご覧ください。

このクイックスタートでは、コマンドライン インターフェースの kubectl を使用して Kubernetes クラスタを管理します。kubectl について詳しくは、kubectl リファレンスをご覧ください。

フィードバックを送信...

Container Engine ドキュメント