使用远程开发部署 Kubernetes 应用

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

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

准备工作

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

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  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. 点击添加 将集群添加到 KubeConfig,然后点击 Google Kubernetes 快速选择菜单中的“搜索引擎”

  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. 在随即显示的快速选择菜单中,选择 Debug on Kubernetes(在 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. 修改以内嵌方式发送到 Hello, goodbye! 的字符串,然后重启 Debug on Kubernetes 操作。

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

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

调试会话启动后,开发会话窗格将显示 结构化日志记录视图任务开始后,系统会显示该任务,并显示一个旋转的半圆圈 progress_activity

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

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

在容器中打开终端

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

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

  2. 展开即可下部分:

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

      Cloud Code Pod

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

    这会启动一个终端。现在,您可以访问 运行中的容器

清理

停止应用后,此期间部署的所有 Kubernetes 资源 系统会自动将其删除

为避免系统因此 如果出现以下情况,请务必删除项目或删除您创建的集群 您希望重复使用该项目

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

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

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

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

后续步骤