运行和开发应用

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

选择运行操作

运行前

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

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

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

Run on Kubernetes

“Run on Kubernetes”运行目标会定期运行您的应用,其中您的项目源和依赖项不会受到监控,并且映像和部署完成后 Skaffold 流程即会立即结束。

如需构建映像并将项目部署到 Kubernetes 集群,请执行以下操作:

  1. 点击在 Kubernetes 上运行 (Run on Kubernetes) 图标 运行操作图标,然后点击修改配置
  2. 使用可用的配置选项自定义部署。
  3. 如果您在 Apple M 系列芯片上进行部署并部署到 Google Kubernetes Engine,则必须构建可以在 x86 架构上运行的映像。如需使用 Cloud Build 构建 x86 映像,请点击构建/部署 (Build/Deploy) 标签页,然后选择 cloudbuild 作为部署配置文件 (Deployment profile)。如需了解使用 Cloud Build 构建应用的费用,请参阅 Cloud Build 价格
  4. 对配置感到满意后,点击确定,然后点击在 Kubernetes 上运行 (Run on Kubernetes)。

使用运行操作的常规部署

在 Kubernetes 上进行持续开发

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

  1. 点击在 Kubernetes 上开发 (Develop on Kubernetes) 图标 运行操作图标,然后点击修改配置
  2. 使用可用的配置选项自定义部署。
  3. 如果您在 Apple M 系列芯片上进行部署并部署到 Google Kubernetes Engine,则必须构建可以在 x86 架构上运行的映像。如需使用 Cloud Build 构建 x86 映像,请点击构建/部署 (Build/Deploy) 标签页,然后选择 cloudbuild 作为部署配置文件 (Deployment profile)。如需了解使用 Cloud Build 构建应用的费用,请参阅 Cloud Build 价格
  4. 对配置感到满意后,点击确定,然后点击在 Kubernetes 上运行 (Run on Kubernetes)。

启动 Kubernetes 集群开发周期

预览部署的应用

  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 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 面板中右键点击相应资源并选择“描述”时显示的描述选项

配置

使用在 Kubernetes 上运行 (Run on Kubernetes) 和在 Kubernetes 上开发 (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 > 帮助 / 简介 > 提交反馈或报告问题以报告 GitHub 问题或询问 Stack Overflow 问题。

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