使用远程开发部署 Kubernetes 应用

本页面介绍了如何借助 Cloud Shell 中的远程开发环境快速开始使用 Cloud Code for VS Code。

在本快速入门中,您将创建集群、在此集群上运行 Kubernetes 应用、调试正在运行的代码、查看来自运行中应用的日志,以及将终端连接到正在运行的容器,但无需设置项目(只需点击一下按钮,即可将项目克隆到远程开发工作区)。

准备工作

如需设置支持资源并访问 Cloud Shell(您在本快速入门中使用的 Google Cloud 远程开发环境,位于 VS Code 中),请完成以下步骤:

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  5. 确保您的 Google Cloud 项目已启用结算功能

  6. 在您的机器上安装 Visual Studio Code(如果尚未安装)。
  7. 安装 Remote - SSH Visual Studio Code 扩展程序。
  8. 安装 Git。 将示例复制到您的计算机需要使用 Git。
  9. 安装 Cloud Code 插件(如果尚未安装)。

启动 Cloud Code

当您在 Cloud Shell 中打开连接到远程开发环境的 Visual Studio Code 时,该环境具有开发 Kubernetes 应用所需的所有工具。

  1. 要开始在远程开发工作区中工作,请为克隆项目选择首选语言,然后点击使用 Cloud Code 打开按钮:

    VS Code 会启动项目并将其克隆到远程开发工作区中。

  2. 如果您尚未设置必备项,系统会提示您进行安装。

创建 GKE 集群

如需创建标准 Google Kubernetes Engine (GKE) 集群,请按以下步骤操作:

  1. 点击 Cloud Code,然后展开 Kubernetes 部分。

  2. 点击 add 将集群添加到 KubeConfig,然后点击快速选择菜单中的 Google Kubernetes Engine

  3. 当系统提示您启用 container.googleapis.com 时,选择

  4. 点击 + 创建新的 GKE 集群

  5. 选择标准作为集群类型。

  6. 点击打开,以允许 Cloud Code 打开 Google Cloud 控制台。

  7. 在 Google Cloud 控制台中,使用您创建的项目,将区域设置为 us-central1-a,并将集群名称设置为 my-first-cluster

  8. 点击创建。集群创建需要几分钟时间。

  9. 创建集群后,在快速选择菜单中,点击刷新 刷新

  10. 新集群的名称显示在列表中后,点击集群名称。您的新集群将添加到配置中,并配置为活跃上下文。

运行和查看应用

现在,您已完成所有设置,可以运行应用并实时查看应用了。Cloud Code 会监控您的文件系统是否有更改,以便您可以近乎实时地修改并重新运行应用。

如需运行您的应用,请按以下步骤操作:

  1. 在 Cloud Code 状态栏中,点击活跃项目名称。

    状态栏中显示有效项目名称

  2. 在随即显示的“快捷选择”菜单中,选择 Run on Kubernetes(在 Kubernetes 上运行)。

  3. 确认是使用当前集群上下文,还是切换到其他集群上下文。

  4. 如果出现提示,请选择要将映像推送到的映像注册表。如果您使用 gcr.io/PROJECT_ID 创建新的映像注册表,请确保该映像注册表与您的集群位于同一项目中。

    系统会显示一个输出窗口,您可以在其中跟踪正在运行的应用的进度。您还会在终端输出中看到来自正在运行的 pod 的实时日志流。

  5. 应用在 Kubernetes 上运行后,输出窗口会显示 IP 地址。如需使用此关联 IP 地址访问您的应用,请按 Ctrl/Cmd,然后点击该地址。

问题排查提示

如果您使用的是现有集群,如需将集群设置为活跃状态并获取集群凭据,请按以下步骤操作:

  1. 点击 Cloud Code,然后展开 Kubernetes 部分。

  2. 右键点击集群名称,然后点击设置为活跃集群

调试应用

如需调试您的应用,请按以下步骤操作:

  1. 在 Cloud Code 状态栏中,点击活跃项目名称。

    状态栏中显示有效项目名称

  2. 在随即显示的“快捷选择”菜单中,选择在 Kubernetes 上调试

  3. 如果出现提示,请对您的凭据进行身份验证,以在本地运行和调试应用

  4. 如果系统提示,请确认是使用当前集群上下文,还是切换到首选集群上下文。

    Cloud Code 使用 .vscode/launch.json 文件中的 cloudcode.kubernetes 配置运行您的应用,并将调试程序会话连接到该应用。

    Cloud Code 会构建您的容器,将其推送到注册表,将 Kubernetes 配置应用于集群,并返回可用于浏览运行中应用的 IP 地址。

  5. 在连接调试程序会话之前,系统会提示您确认或输入您要调试的程序所在的远程容器目录(或按 Esc 键跳过对容器的调试)。

  6. 如需向第 9 行添加断点,请打开 src/app.js,然后点击编辑器边距。

    红色实心圆表示活跃断点,而灰色空心圆表示已停用的断点。 如需更精确地控制断点,您可以使用 VS Code 的“Debug”视图中的“Breakpoints”部分。

    “Debug”视图左侧面板中的“Breakpoints”部分,支持添加、移除和停用断点

    当您向应用发送新请求时,调试程序会在第一个活跃断点处暂停。

    在以下示例中,在 Variables 部分的 Local 下,请注意 Hello, world!res._contentLength; 值为 13。

    应用已在断点处暂停,并且变量和调用堆栈部分已填充相应范围内的值

  7. 修改以内嵌方式 #8 发送到 Hello, goodbye! 的字符串,然后重启 Debug on Kubernetes 操作。

    重新构建和重新部署应用后,请注意 res._contentLength 的更新值。

    应用在断点处暂停并且值已更新

调试会话启动后,开发会话窗格会显示结构化日志记录视图。随着任务开始时,任务将显示一个旋转的半圆形 progress_activity

如果任务成功,该步骤旁边会显示一个对勾标记 check_circle

如需查看某个步骤的详细信息,请在 Development session(开发会话)窗格中点击该步骤。“输出”窗格会在日志记录输出中显示该步骤。

在容器中打开终端

如需在容器中打开终端,请按以下说明操作:

  1. 点击 Cloud Code,然后展开 Kubernetes 部分。

  2. 展开即可下部分:

    • 您的首选集群部分
    • 命名空间部分,然后首选命名空间的部分
    • Pod 部分,然后是首选 Pod 的部分
    • 容器部分

      Cloud Code Pod

  3. 右键点击您要在其中打开终端的容器,然后点击获取终端

    这将启动一个终端。现在,您可以访问正在运行的容器内的 shell。

清理

停止应用后,系统会自动删除在运行期间部署的所有 Kubernetes 资源。

为避免系统因本快速入门中使用的其他资源向您的帐号收取费用,如果您想重复使用该项目,请务必删除该项目或删除您创建的集群。

如需删除集群,请执行以下操作:

  1. 点击 Cloud Code,然后展开 Kubernetes 资源管理器。
  2. 将指针悬停在集群名称上,然后点击 open_in_new 在 Google Cloud 控制台中打开
  3. 点击删除,然后再次点击删除进行确认。

如需删除项目(以及关联的资源,包括所有集群),请执行以下操作:

  1. 在 Google Cloud 控制台中,进入管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

后续步骤