在 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 應用程式建立 Dockerfile

    如要為您的應用程式建立 Dockerfile:

    1. 切換至應用程式主目錄。
    2. 執行下列指令,建立應用程式的 Dockerfile:
      gcloud beta app gen-config --custom
      系統提示您將 app.yaml 中的執行階段欄位變更為自訂時,請選取 [Y] 加以確認。

    從 Dockerfile 建構容器

    如要建構容器:

    1. 確認您位在含有 Dockerfile 的 App Engine 應用程式目錄中。

    2. gcloud 工具使用的預設專案變更為指向您正在使用的專案,以便在 GKE 中執行您的應用程式:

      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 Kubernetes Engine 使用 Kubernetes 進行容器的管理、部署和資源調度。如要進一步瞭解 Kubernetes,請參閱外部的 Kubernetes 網站

    本指南使用 kubectl,此指令列介面用於管理 Kubernetes 叢集。如要進一步瞭解 kubectl,請參閱 kubectl 參考資料

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
App Engine flexible environment for PHP docs