运行和开发应用

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

选择运行操作

运行前

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

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

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

Run on Kubernetes

若要定期运行应用,可以使用 Kubernetes 运行目标在 Kubernetes 上运行 (Run on Kubernetes) 运行操作图标 来构建映像,并将项目部署到 Kubernetes 集群。您的项目源和依赖项不会受到监控,并且映像和部署完成后 Skaffold 流程即会立即结束。

使用运行操作的常规部署

如需详细了解如何自定义部署,请参阅可用的配置选项

在 Kubernetes 上进行持续开发

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

启动 Kubernetes 集群开发周期

如需详细了解如何自定义部署,请参阅可用的配置选项

预览部署的应用

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

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

    查看从 Kubernetes 应用流式传输的日志

  2. 部署成功后,系统将向您发出通知,提示现在可通过本地网址访问您的服务。点击“View”可打开事件日志。

    现在,可通过“事件日志”中通知里所述的网址来访问运行中的应用

    Event Log 中,找到提供您的应用的端口。点击该链接以打开浏览器,其中包含您的运行中应用。

  3. 查看新部署的应用!

    在 localhost:8080 上运行留言板应用

查看日志

在开发和运行应用时,您可以在终端输出中看到来自正在运行的 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. 完成后,点击“Stop”按钮以结束持续开发会话。此操作会导致插件删除用于开发会话的所有 Kubernetes 资源。

存储密文

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

查看资源详细信息

如需跟踪 Kubernetes 资源的状态,您可以使用 Kubernetes Explorer(可从右侧的侧边面板访问)。或者,您也可以使用 Tools > Cloud Code > Kubernetes > View Cluster Explorer 访问该信息。

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

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

您可以对部署的资源轻松运行 kubectl describe 来显示其详细信息,只需在 Kubernetes Explorer 中右键点击其标签并选择 Describe 即可。

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

配置

使用在 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 选项
    • Deployment Context - 表示将在其中部署应用的 Kubernetes 环境。 默认行为是部署到当前系统环境。 或者,您也可以通过选择切换上下文并部署到 (Switch context and deploy to)(在“运行/调试设置”(Run/Debug settings) 的“部署”部分下),选择部署到固定上下文。此选项会在部署时将系统的当前环境更改为指定的上下文。在 Cloud Code 运行配置中选择 Kubernetes 部署环境
    • Delete deployments when finished - 在进程终止时删除 Kubernetes 部署。这是默认行为。或者,您也可以切换此设置以防止部署被删除
  • 容器映像存储选项
  • 构建设置

获取支持

如需发送反馈,请在 GitHub 上报告问题,或者在 Stack Overflow 上提出问题。