在 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

為 App Engine 應用程式建立 Dockerfile

如何為應用程式建立 Dockerfile:

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

從 Dockerfile 建構容器

如何建構容器:

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

  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 Ruby 應用程式。

後續步驟

您或許會想進一步瞭解 Kubernetes 和 kubectl 指令。Google Kubernetes Engine 會將 Kubernetes 用於容器的管理、部署和資源調度等作業。如要進一步瞭解 Kubernetes,請參閱外部 Kubernetes 網站

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

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

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

這個網頁
Ruby 適用的 App Engine 彈性環境文件