本指南介绍如何在 GKE 上运行 App Engine 柔性环境应用。 要在 GKE 上运行您的应用,您需要为该应用创建 Dockerfile,通过 Cloud Build 构建容器,然后在 GKE 中运行该容器。无需更改任何代码。
准备工作
在按照此页面上的说明操作之前,请先执行以下步骤:
验证您的应用已成功部署在 App Engine 柔性环境中且运行正常。
在这些说明中,您将使用在 App Engine 应用上使用的同一项目。如果需要,您始终可以创建和使用新项目。
Enable the GKE, Cloud Build APIs.
下载并安装 Google Cloud CLI,然后初始化 gcloud 工具:下载 Google Cloud SDK。
或者,您也可以使用 Cloud Shell,它包含 gcloud CLI、
git
和其他预安装的功能,例如语言支持、工具和编辑器。安装
kubectl
命令行工具:gcloud components install kubectl
为 App Engine 应用创建 Dockerfile
按照创建 Dockerfile 中的说明为您的应用构建 Dockerfile。
通过 Dockerfile 文件建容器
如需构建容器,请执行以下操作:
确保当前目录为包含 Dockerfile 的 App Engine 应用目录。
更改
gcloud
工具使用的默认项目,使其指向您用于在 GKE 中运行应用的项目:gcloud config set project [YOUR-PROJECT-ID]
将
[YOUR-PROJECT-ID]
替换为您的 GKE 项目 ID。通过以下命令构建容器:
gcloud builds submit --tag gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] .
将
[YOUR-PROJECT-ID]
替换为 GKE 项目的项目 ID,并将[YOUR-CONTAINER-NAME]
替换为要用于应用容器的容器名称。等待构建容器,这可能需要一些时间。容器构建成功后,会显示如下消息:
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 中运行应用
如需运行包含您应用的容器,请执行以下操作:
创建集群(这可能需要几分钟的时间):
gcloud container clusters create [YOUR-CLUSTER-NAME]
将
[YOUR-CLUSTER-NAME]
替换为要为集群指定的名称。通过命令行设置您的计算可用区:
gcloud config set compute/zone us-central1-b
确保 GKE
kubectl
工具获得了授权:gcloud container clusters get-credentials [YOUR-CLUSTER-NAME]
按照提示为工具授权。
运行包含您应用的容器:
kubectl create deployment [YOUR-DEPLOYMENT-NAME] --image=gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME]
将
[YOUR-DEPLOYMENT-NAME]
替换为您要用于部署的名称,将[YOUR-PROJECT-ID]
替换为您的 GKE 项目 ID,并将[YOUR-CONTAINER-NAME]
替换为您为应用创建的容器名称。公开容器以允许公共访问:
kubectl expose deployment [YOUR-DEPLOYMENT-NAME] --type="LoadBalancer" --port=8080
将
[YOUR-DEPLOYMENT-NAME]
替换为您在前面步骤中使用的名称。您可能需要等待几分钟才能查看外部 IP。查看应用的外部 IP 地址:
kubectl get service [YOUR-DEPLOYMENT-NAME]
将
[YOUR-DEPLOYMENT-NAME]
替换为您在前面步骤中使用的名称。如果EXTERNAL IP
字段为空,请稍等片刻,然后重新调用该命令。查看在 GKE 中运行的应用:
http://EXTERNAL-IP:8080
将
EXTERNAL-IP
替换为您在上一步中获得的外部 IP 地址。
您已在 GKE 上成功部署并运行了 App Engine 应用!
后续步骤
您可能需要详细了解 Kubernetes 和 kubectl
命令。Google Kubernetes Engine 使用 Kubernetes 进行容器管理、部署和扩缩。如需详细了解 Kubernetes,请参阅外部 Kubernetes 网站。
本指南使用 kubectl
命令行界面来管理 Kubernetes 集群。如需详细了解 kubectl
,请参阅 kubectl 参考。