在 Cloud Code for IntelliJ 中运行并开发应用

现在您已经完成了所有设置,接下来可以选择以常规方式运行应用,或在 IDE 中启动开发迭代周期,以将对来源和依赖项所做的任何更改传播到运行中的应用。本页面使用 Guestbook 示例应用来演示如何运行和开发 Kubernetes 体验。

选择运行操作

运行前

在运行应用之前,请确保您已准备好将应用部署到首选 Kubernetes 上下文。您可以在“部署”偏好部分和运行”标签页的配置部分中指定此信息。

如果您要切换当前上下文,可以使用 Kubernetes Explorer(可通过右侧的边栏面板或使用工具 > Cloud Code > Kubernetes > 查看 Cluster Explorer (View Cluster Explorer) 访问)执行此操作。

如要通过快速选择特定类型的文件更改(而无需执行映像重新构建)来优化开发循环,您可以启用文件同步和热重载

在 Kubernetes 上进行持续开发

“Develop on Kubernetes”运行目标会在 Kubernetes 集群上启动开发周期。启动开发周期后,Cloud Code 会使用 Skaffold 为项目构建一个映像,然后对其进行标记,将其推送到所配置的存储区,并使用 kubectl 部署项目 Kubernetes 清单。

  1. 点击 运行操作图标 Develop on Kubernetes,然后点击 Edit Configurations 以打开 Run/Debug Configurations 对话框。
  2. 使用可用的配置选项自定义部署。
  3. 如果您希望 Cloud Code 在保存更改后自动重新部署应用,请在 Watch mode - rebuild and Redeploy 下选择 On filesave。默认情况下,新 Kubernetes 应用会选择按需。如需详细了解观察模式,请参阅观察模式
  4. 如果您的应用配置为使用 Skaffold 模块,您可以选择仅构建或部署特定模块
  5. 对配置感到满意后,点击确定,然后点击 运行操作图标 运行

启动 Kubernetes 集群开发周期

选择 Skaffold 模块

本部分概述了如何将 Skaffold 项目拆分为模块,以便您可以独立开发和调试应用的各个部分。

如需在 IntelliJ 中选择 Skaffold 模块,请执行以下步骤:

  1. 安装最新的内部人员版本
  2. 转到运行 > 修改配置 (Edit configurations) 并打开构建/部署 (Build / Deploy) 标签页。
  3. 选择 skaffold.yaml。
  4. 请按以下方式之一操作:
    • 使用所有依赖项构建和部署,或
    • 构建和部署方式(如果模块可用)并选择任何模块。
显示模块列表的“构建/部署”标签页。

您的选择会持续用于后续部署。如果您选择模块的子集,Cloud Code 会显示一条关于部署模块子集而不是整个系统的警告。

预览部署的应用

  1. 点击首选运行操作上的“运行”按钮。然后,您可以在日志标签页下的输出窗口中查看传入的应用日志。

    部署开始后,您将看到已部署应用的转发端口列表。

  2. 部署成功后,系统会通知您有新的服务网址。点击服务网址标签页以查看网址,然后点击“网址”链接以打开浏览器,其中包含您的运行中应用。

    在“服务网址”标签页中查看通过端口转发的服务

    或者,您可以打开事件日志,然后点击链接以打开包含正在运行的应用的浏览器。

查看日志

除了在开发和运行应用时在终端输出中作为实时流看到来自正在运行的 Pod 的日志,您还可以导航到 Kubernetes Explorer 来查看来自特定 Pod 的日志。

如需查看来自特定 pod 的日志,请按以下步骤操作:

  1. 导航到 Kubernetes Explorer。您可以通过右侧的侧边面板或使用 Tools > Cloud Code > Kubernetes > View Cluster Explorer 访问该工具。

    使用右侧任务栏上的标签页打开 Kubernetes Explorer 面板

  2. 选择要查看其日志的 pod。

  3. 右键点击该 Pod,然后点击 Stream Logs。或者,您也可以流式传输在 Pod 中运行的各个容器的日志。

    Kubernetes Explorer Console 会显示日志。

    使用某一 pod 的右键菜单流式传输其日志,以将日志输出到 Kubernetes Explorer Console

在 Kubernetes 上开发时添加新功能

如果您开始使用“Develop on Kubernetes”进行开发迭代周期并向项目添加更多功能,那么无需停止和移除部署、手动构建和标记映像或更新集群,即可看到这些更改如何部署到 Kubernetes 集群。

如果您使用 Guestbook 应用执行操作:

  1. src/main/java/cloudcode/guestbook/frontend 打开“FrontendController.java”文件,并将此新端点添加到 FrontendController 类:

     @RequestMapping("/greeting")
     @ResponseBody
     public String greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return String.format("Hello from Kubernetes with IntelliJ, %s!", name);
     }
     ```
    
  2. 为新注解 RequestMappingResponseBody 添加必要的导入项。

  3. 保存更改 (Ctrl/Cmd+S) 或构建项目(使用构建 (Build) > 构建项目 (Build Project) 菜单)。

    您可以在控制台窗口中查看进度和部署日志。 在更改传播完毕后,通过访问如下新端点网址确认更新:localhost:8080/greeting

    在浏览器中查看新创建的端点

  4. 如需结束持续开发会话,请点击停止按钮。

    插件会删除用于开发会话的所有 Kubernetes 资源。

存储密文

如果您的代码包含潜在的敏感数据,例如 API 密钥、密码和证书,我们建议您将它们存储为密文。借助 Cloud Code,您可以安全地将这些密文存储在 Secret Manager 中,并在需要时以编程方式提取它们。如需详细了解如何使用 Cloud Code 创建和管理密文,请参阅 Secret Manager 指南

查看资源详细信息

如需跟踪 Kubernetes 资源的状态,您可以使用 Kubernetes Explorer(可从右侧的侧边面板访问)。或者,您可以使用工具 > Cloud Code > Kubernetes > 查看 Cluster Explorer (View Cluster Explorer) 来访问 Kubernetes Explorer。

使用右侧任务栏上的标签页打开 Kubernetes Explorer 面板

借助 Kubernetes Explorer,您可以访问集群、节点、工作负载等相关信息,设置跃上下文流式传输和查看日志,以及查找资源说明

您可以右键点击 Kubernetes Explorer 中的资源标签,然后点击描述,以显示已部署资源的详细信息。

在 Kubernetes Explorer 面板中右键点击相应资源并选择“描述”时显示的描述选项

配置

使用 Develop on Kubernetes 运行配置时,您可以通过配置可用设置来自定义部署。从下拉列表中选择“运行配置”(Run Configuration),然后选择修改配置,即可访问配置选项。

Skaffold 选项

  • Skaffold 配置 - 选择 skaffold.yaml 配置文件。 如果您的项目中包含“skaffold.yaml”,则系统将自动检测到该文件。
  • 部署配置文件 - 从 skaffold.yaml 文件中配置的可用选项中选择配置文件
  • Environment variables - 用于配置要传递给 Skaffold 部署进程的其他环境变量。您还可以将 Skaffold 标志配置为要在此字段中使用的环境变量。如需查看可用 Skaffold 环境变量的完整列表,请参阅 Skaffold CLI 参考文档
  • Verbosity - 用于设置输出的详尽程度,可选的值为:tracedebuginfowarnerrorfatal。默认的详尽程度为 warn

Kubernetes 选项

  • 部署上下文 - 表示在其中部署应用的 Kubernetes 上下文。如果未指定部署上下文,则默认行为是部署到当前系统上下文(如果存在)。

    如果您不想部署到当前上下文,请在“运行/调试”设置的“部署”部分下选择:

    • 在本地部署到 minikube 集群 - 启动由 Cloud Code 管理的 minikube 集群以运行您的应用,并在部署停止后停止集群。如果 minikube 集群已在运行,则 Cloud Code 会使用现有的 minikube 集群进行部署。
    • 切换上下文并部署到 - 在部署时,将系统上的当前上下文更改为指定上下文。

      在 Cloud Code Kubernetes 配置中选择 Kubernetes 部署环境

  • Delete deployments when finished - 在进程终止时删除 Kubernetes 部署。这是默认行为。或者,您也可以切换此设置以防止部署被删除

容器映像存储选项

如需了解详情,请参阅有关存储容器映像的指南

构建设置

Cloud Code 支持 Docker、Jib 和 Buildpacks 工件类型。如需了解如何设置首选构建器及其相关设置,请参阅配置容器映像构建偏好设置指南

获取支持

如需在 IntelliJ IDE 中提交反馈或报告问题,请转到工具 > Cloud Code > 帮助/简介 > 提交反馈或报告问题 (Submit feedback or report an issue),在 GitHub 上报告问题或在 Stack Overflow 上提问。

您还可以加入属于 Google Cloud Slack 社区#cloud-code 频道。