预览并部署 Kubernetes Engine 应用

本页面介绍了如何使用 Cloud Shell 快速部署 Kubernetes Engine 应用。

请按照以下步骤启用 Kubernetes Engine API:
  1. 访问 Google Cloud Console 中的 Kubernetes Engine 页面
  2. 创建或选择项目。
  3. 稍作等待,让 API 和相关服务完成启用过程。 此过程可能耗时几分钟。
  4. 确保您的 Google Cloud 项目已启用结算功能。 了解如何确认您的项目已启用结算功能

部署 Kubernetes 应用

Cloud Shell 预先安装了 gcloudkubectl 命令行工具。您可以使用 gcloudkubectl,而无需进行任何其他设置!

  1. 点击控制台窗口顶部的激活 Cloud Shell 激活 Shell 按钮 按钮

    这将在控制台底部的框中启动 Cloud Shell 会话。

  2. 设置默认值

    要将默认的计算地区设置为所需的地理计算地区,请运行:

     gcloud config set compute/zone [COMPUTE_ZONE]
    

    如果您在控制台上设置了项目,那么它将自动在 Cloud Shell 中进行设置。如果尚未设置,请运行以下命令来设置项目 ID

    gcloud config set project [CLOUD_SHELL_PROJECT_ID]
    
  3. 克隆示例应用:

    要克隆示例应用并转到其目录,请运行:

     git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samples
     cd kubernetes-engine-samples/hello-app
    

    hello-app 是一个示例 Go 网络服务器应用,并带有构建应用 Docker 映像所需的 Dockerfile。

  4. 构建容器映像

    要构建 hello-app 的容器映像并将其标记为 gcr.io/${CLOUD_SHELL_PROJECT_ID}/hello-app:v1 名称以进行上传,请运行:

     docker build -t gcr.io/${CLOUD_SHELL_PROJECT_ID}/hello-app:v1 .
    
  5. 预览应用

    要在浏览器中预览应用,请运行:

     docker run --rm -p 8080:8080 gcr.io/${CLOUD_SHELL_PROJECT_ID}/hello-app:v1
    

    在 Cloud Shell 上,点击网页预览按钮 网页预览按钮,然后选择“在端口 8080 上预览”。

    Cloud Shell 会在新的浏览器窗口中打开其代理服务的预览网址。

  6. 编辑应用

    main.go 进行一些小的更改,例如将“Hello,world!”替换为“Teapot!”。

    在 Cloud Shell 会话中输入 Ctrl + C 以停止开发服务器。

    重新构建并上传您的图片。现在,当您通过在 Docker 引擎上运行应用并点击“网页预览”来预览应用时,您会看到更改在浏览器中生效。

  7. 将图像上传到 Container Registry

    要使用 Docker 命令行工具(随 Cloud Shell 完成安装、身份验证和配置)将映像上传到 Container Registry,请运行:

     docker push gcr.io/${CLOUD_SHELL_PROJECT_ID}/hello-app:v1
    
  8. 使用唯一名称创建集群

    要创建名为 hello-cluster 的集群,请运行:

     gcloud container clusters create hello-cluster
    

    此步骤可能需要几分钟才能完成。

  9. 部署应用

    要创建名为 hello-server 的新部署,请运行:

     kubectl run hello-server --image gcr.io/google-samples/hello-app:1.0 --port 8080
    

    此 Deployment 的 pod 在其容器中运行 hello-app 映像。

  10. 创建一个服务

    要将应用向外部流量公开以允许用户使用它,您需要创建一个服务。

     kubectl expose deployment hello-server --type LoadBalancer \
     --port 80 --target-port 8080
    
  11. 检查创建的服务

    要获取服务的外部 IP 地址,请运行:

     kubectl get service hello-server
    

    在命令的输出中,从 EXTERNAL-IP 列复制服务的外部 IP 地址。

  12. 您的容器化 Web 应用应该是实时的!

    使用上一步中的外部 IP 地址,从网络浏览器中查看应用。

     http://[EXTERNAL_IP]/
    
  13. 请记住之后要清理服务以避免产生不必要的计费

    要删除应用的服务(和您创建的 Compute Engine 负载平衡器),请运行:

     kubectl delete service hello-server
    

    接下来,要删除集群,请运行:

     gcloud container clusters delete hello-cluster