运行 Kubernetes 应用

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

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

使用 Cloud Code 创建新的 Hello World 应用

准备工作

如果您想使用 Google Cloud,则需要创建 Google Cloud 项目并启用结算功能

安装 Cloud Code

  1. 在您的机器上安装 Visual Studio Code(如果尚未安装)。
  2. 对于所有 Cloud 平台,请将 Docker 客户端(已使用 Docker 注册表进行身份验证)安装在您的机器的 PATH 上(该客户端的安装文件夹应显示在 PATH 中的某一目录下)。

    • 如需检查是否已安装 Docker,请运行 docker -v
    • 如果您使用的是 Windows Home 版,请参阅在 Windows Home 版上安装 Docker Desktop
    • 如果使用的是 WSL,但无法安装 Docker for Desktop,请改用 minikube 进行 Cloud Code 本地开发。

    Cloud Code 会自动安装 kubectl、Skaffold 和 Cloud SDK。

  3. 使用以下选项之一安装 Cloud Code:

    • 打开 VS Code 并安装 Cloud Code
    • 在您的机器上打开 Visual Studio Code。 使用 VS Code 中的扩展程序视图 “扩展程序”图标(左侧任务栏中显示的方形图标),搜索并点击 Cloud Code 扩展程序,然后点击安装

    安装完成后,您将看到 Cloud Code 欢迎页面,并会在“入门应用”(Starter Apps) 下看到一系列内置模板,可用于快速设置新应用。

    Cloud Code 欢迎页面

    此外,您现在还可以在 VS Code 状态栏中找到 Cloud Code 状态栏,其中包含常用的 Cloud Code 操作。

    Cloud Code 状态栏

创建应用

  1. 在 Command Palette (Cmd/Ctrl+Shift+P) 中运行 Cloud Code: New Application,选择 Kubernetes 应用 (Kubernetes Application),然后选择以您偏好的语言提供的 Hello World 应用。

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

  2. 保存新应用。

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

创建 Google Kubernetes Engine 集群

如需创建标准 GKE 集群,请按照以下步骤操作:

  1. 使用 Cloud Code 视图 Kubernetes Explorer 图标 导航到 Google Kubernetes Engine Explorer,方法是在左侧的 VS Code 活动栏中点击其图标。
  2. 点击点击此处登录 Google Cloud SDK,使用 Cloud SDK 进行身份验证。
  3. 在 Google Kubernetes Engine Explorer 面板的标题中,点击 + 按钮(在鼠标悬停时可用)以创建新的 GKE 集群。
  4. 确保您是在默认项目中创建集群。
  5. 在“创建集群”向导中填写字段,然后点击创建集群

    在此示例中,使用默认项目 ID 按钮设置项目 ID,将可用区设置为 us-central1-a,并将集群名称定义为 test

    集群创建过程需要几分钟时间才能完成。创建集群后,它将列在 GKE Explorer 视图 Kubernetes Explorer 图标 下。

    使用 GKE Explorer 创建新集群

运行应用

您现在可以运行您的应用并对其进行实时查看。Cloud Code 还会监控您的文件系统是否有更改,以便您可以近乎实时地修改并重新运行应用。

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

  1. 使用 Cloud Code 状态栏并选择 Run on Kubernetes
  2. 确认是使用当前集群上下文,还是切换到其他集群上下文。
  3. 如果出现提示,请选择要将映像推送到其中的映像注册表。

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

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

    运行 Hello World 应用

问题排查提示

如果您使用的是已有集群,则如需获取集群凭据并将集群添加到 kubectl,请运行以下命令:

 gcloud container clusters get-credentials ${CLUSTER} --zone=${ZONE}
 

或者,您可以按照以下步骤,将集群设置为活跃状态,并使用 GKE Explorer 获取集群凭据:

  1. 导航到 GKE Explorer(以位于 Cloud Code 视图 Kubernetes Explorer 图标 下的 Kubernetes Explorer 中的面板)。
  2. 右键点击您的集群,然后点击设置为活跃集群

调试应用

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

  1. 使用 Cloud Code 状态栏,然后选择在 Kubernetes 上调试 (Debug on Kubernetes)。
  2. 如果系统提示,请确认是使用当前集群上下文,还是切换到首选集群上下文。

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

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

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

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

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

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

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

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

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

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

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

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

查看日志

除了查看正在运行的应用的终端输出中的实时 pod 流之外,您还可以使用 Cloud Code 附带的日志查看器来查看日志。

如需查看日志,请按以下步骤操作:

  1. 启动日志查看器,方法是在 Command Palette(可通过 Ctrl/Cmd+Shift+P 访问或通过标有齿轮图标 “管理”图标管理菜单访问)中输入 Cloud Code: View Logs
  2. 搜索正在运行的应用(在本例中为 nodejs-hello-world),以通过日志查看器搜索框中的部署字段查看日志。

    通过将日志查看器搜索框中的 Deployment 字段设置为“nodejs-hello-world”来查看日志。

附加操作:在容器中打开终端

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

  1. 导航到 Kubernetes Explorer。
  2. 选择集群,然后从底层 Pod 部分中选择要连接的 pod。
  3. 在指定的 pod 下,展开容器部分。
  4. 右键点击要打开终端的容器,然后点击获取终端

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

    打开指定 pod 的终端

清理

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

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

如果您使用的是 Google Cloud 且只想删除集群,则可以执行以下操作:

  • 在 Cloud Code 视图 Kubernetes Explorer 图标 下使用 Kubernetes Explorer,右键点击要从 Google Kubernetes Engine Explorer 窗格中删除的集群,然后点击删除集群

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

  1. 转到 Cloud Console 中的“项目”页面:

    转到“项目”页面

  2. 选择您为本快速入门创建的项目,然后点击该项目旁边的垃圾桶图标将其删除。

    这将关闭该项目并安排将其删除。

后续步骤