GKE での App Engine アプリの実行

このガイドでは、GKE 上で App Engine フレキシブル環境のアプリケーションを実行する方法を説明します。GKE 上でアプリを実行するには、そのアプリに関する Dockerfile を作成し、Dockerfile を使用してコンテナを作成し、そのコンテナを GKE で実行する必要があります。コードを変更する必要はありません。

始める前に

このページの説明に沿って操作を行う前に、次の手順を実行してください。

  1. App Engine フレキシブル環境にアプリケーションがデプロイされ、正常に動作していることを確認します。

  2. 以下の説明では、App Engine アプリに同じプロジェクトを使用します。必要であれば、いつでも新しいプロジェクトを作成し、使用することができます。

  3. GKE, Cloud Build API を有効にします。

    APIを有効にする

  4. Google Cloud SDK をダウンロードしてインストールし、gcloud ツールを初期化します。
    SDK をダウンロード
  5. Kubernetes の kubectl ツールをダウンロードしてインストールします。
  6. あるいは、Google Cloud Shell を使う手もあります。これには初めから git と Cloud SDK がインストールされており、言語サポートやコードエディタなど、他の多くの機能も利用できます。
  7. git をダウンロードしてインストールします
  8. PHP 5.6、7.0 または 7.1 をインストールします。
  9. 依存関係を管理するため、Composer をダウンロードし、Composer 実行ファイルをグローバルにインストールします。

App Engine アプリに Docker ファイルを作成する

アプリに Docker ファイルを作成するには:

  1. アプリケーションのメイン ディレクトリに移動します。
  2. 次のコマンドを実行して、アプリケーションに Docker ファイルを作成します。
    gcloud beta app gen-config --custom
    app.yaml のランタイム フィールドを custom に変更するように求められたら、[Y] を選択します。

Dockerfile からコンテナを構築する

コンテナを構築するには:

  1. Dockerfile のある App Engine アプリケーション ディレクトリに移動します。

  2. GKE 上でアプリを実行するために使うプロジェクトをポイントするように gcloud ツールのデフォルトのプロジェクトを変更します。

    gcloud config set project [YOUR-PROJECT-ID]
    

    [YOUR-PROJECT-ID] は GKE プロジェクトのプロジェクト ID に置き換えます。

  3. 次のコマンドでコンテナを構築します。

    gcloud builds submit --tag gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] .
    

    [YOUR-PROJECT-ID] は GKE プロジェクトのプロジェクト ID に置き換え、[YOUR-CONTAINER-NAME] はアプリのコンテナとして使いたいコンテナの名前に置き換えます。

  4. コンテナの完成を待ちます。時間がかかる場合もあります。正常に終了すると、次のようなメッセージが表示されます。

    Created [https://cloudbuild.googleapis.com/v1/projects/YOUR-PROJECT-ID/builds/xxxxxxx-xxxx-xxx-xxx-xxxxxxxxxxxx].
    Logs are permanently available at [https://console.developers.google.com/logs/viewer?resource=build&project=YOUR-PROJECT-ID&filters=text:xxxx-xxx-xxx-xxxxxxxxxxxx]].
    
    ID  CREATE_TIME DURATION  SOURCE                                                     IMAGES                               STATUS
    xxxxxxx-xxxx-xxx-xxx-xxxxxxxxxxxx  2017-03-04T00:42:10+00:00  1M32S     gs://YOUR-PROJECT-ID_cloudbuild/source/xxxxxxx.08.tgz  gcr.io/YOUR-PROJECT-ID/YOUR-CONTAINER-NAME  SUCCESS<
    

    コンテナの名前をメモしておきます。GKE で実行するとき、これを指定する必要があります。

GKE でアプリを実行する

アプリケーションを含むコンテナを実行するには:

  1. クラスタを作成します(数分かかる場合があります)。

    gcloud container clusters create [YOUR-CLUSTER-NAME]
    

    [YOUR-CLUSTER-NAME] をクラスタに付ける名前で置き換えます。

  2. コマンドラインでコンピューティング ゾーンを設定します。

    gcloud config set compute/zone us-central1-b
    
  3. GKE の kubectl ツールが承認されていることを確認します。

    gcloud container clusters get-credentials [YOUR-CLUSTER-NAME]
    

    プロンプトの指示に従って、ツールを承認します。

  4. アプリを含むコンテナを実行します。

    kubectl run [YOUR-DEPLOYMENT-NAME] --image=gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] --port=8080
    

    [YOUR-DEPLOYMENT-NAME] はデプロイに使う名前、[YOUR-PROJECT-ID] は GKE プロジェクト ID、[YOUR-CONTAINER-NAME] はアプリ用に作成したコンテナの名前にそれぞれ置き換えます。

  5. 一般公開用としてコンテナを公開します。

    kubectl expose deployment [YOUR-DEPLOYMENT-NAME] --type="LoadBalancer"
    

    [YOUR-DEPLOYMENT-NAME] は、前の手順で使用した名前で置き換えます。外部 IP が表示されるまで、数分かかる場合があります。

  6. アプリに外部 IP アドレスを表示します。

    kubectl get service [YOUR-DEPLOYMENT-NAME]
    

    [YOUR-DEPLOYMENT-NAME] は、前の手順で使用した名前で置き換えます。EXTERNAL IP フィールドが空の場合、しばらく待機してからコマンドを再度実行します。

  7. アプリが GKE で動いていることを確認します。

    http://EXTERNAL-IP:8080
    

    EXTERNAL-IP は、前のステップで取得した外部 IP アドレスに置き換えます。

以上、GKE に App Engine PHP アプリをデプロイして実行することができました。

次のステップ

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

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

このページは役立ちましたか?評価をお願いいたします。

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

PHP の App Engine フレキシブル環境に関するドキュメント