使用 Cloud Code for VS Code 部署 Kubernetes 应用

本页面介绍如何快速开始使用 Cloud Code。

您将使用“Hello World”示例应用设置新的 Kubernetes 应用、创建集群、在此集群上运行应用、调试正在运行的代码、查看来自运行中应用的日志,并将终端连接到正在运行的容器。

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud新手, 请创建一个账号来评估我们的产品在 实际场景中的表现。新客户还可获享 $300 赠金,用于 运行、测试和部署工作负载。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Google Kubernetes Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Google Kubernetes Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  10. 安装 Git。 将示例复制到您的计算机需要使用 Git。
  11. 安装 Docker。 构建示例代码需要使用 Docker。确保您的本地用户账号 能够构建容器。
  12. 如果您尚未安装 Cloud Code 插件 ,请进行安装。

所需角色

如需获得完成本快速入门所需的权限,请让您的管理员为您授予项目的 Kubernetes Engine Admin (roles/container.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

创建应用

  1. 打开命令面板(按 Ctrl/Cmd+Shift+P,或点击 View [视图] > Command Palette [命令面板]),然后运行 Cloud Code: New Application 命令。

  2. 选择 Kubernetes Application

  3. 以您偏好的语言选择 Hello World 应用。

    例如,选择 Node.js: Hello World 可创建 Node.js Hello World 入门应用。

  4. 保存新应用。

    系统会显示一条通知以确认您的应用已创建,然后打开一个包含您的应用的新窗口。

创建 GKE 集群

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

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

  2. 点击 add 将集群添加到 KubeConfig ,然后在 Quick pick 菜单中点击 Google Kubernetes Engine

  3. 当系统提示您启用容器 API 时,请选择 Yes [是]。

  4. 点击 + Create a New GKE Cluster [创建新的 GKE 集群]。

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

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

  7. 在 Google Cloud 控制台中,确保选择的项目是您 之前创建或选择的项目。

  8. 将集群名称设置为 my-first-cluster

  9. 选择Zonal 作为位置类型,并将可用区设置为 us-central1-a

  10. 点击创建 。集群创建过程需要几分钟时间才能完成。

  11. 创建集群后,再次点击将集群添加到 KubeConfig ,然后从列表中选择您刚刚创建的集群。

  12. 您的新集群将添加到配置中,并配置为活跃上下文。

运行和查看应用

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

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

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

    状态栏中的有效项目名称

  2. 在显示的快速选择菜单中,选择 Run on Kubernetes [在 Kubernetes 上运行]。再次出现提示时,选择 Run on Kubernetes [在 Kubernetes 上运行]。

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

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

  5. 应用在 Kubernetes 上运行后,点击开发会话 部分中 Run on Kubernetes [在 Kubernetes 上运行] 任务的 Status [状态] 条目。 系统会打开一个窗口,其中包含一个 Output [输出] 标签页,其中包含应用的网址。如需打开此网址,请按 Control (在 macOS 上,按 Command)并点击该地址。

    您还可以在 控制台的工作负载概览 中找到您的应用。 Google Cloud 如需详细了解正在运行的应用(包括其外部 IP 地址和端口号),请点击列表中的应用名称。

问题排查提示

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

  1. 在 VS Code 中,点击 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”部分,支持添加、移除和停用断点

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

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

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

  7. 将第 8 行中发送的字符串修改为 Hello, goodbye!,然后重启在 Kubernetes 上调试 操作。

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

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

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

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

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

在容器中打开终端

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

  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,然后点击 关闭以删除项目。

后续步骤