Skaffold 模块

Skaffold 是一个命令行工具,能够促进 Kubernetes 原生应用的持续开发。Skaffold 可处理用于构建、推送和部署应用的工作流,并提供用于创建 CI/CD 流水线的构建块。Skaffold 是为 Cloud Code 提供支持的引擎。

Skaffold 项目通常从使用单个 skaffold.yaml 配置来描述如何构建和部署应用开始。随着项目规模的扩大,将应用流水线拆分为多个单独的部分会非常有用。

Skaffold 支持定义多个配置依赖项,这些依赖项可以放在同一个 skaffold.yaml 文件中,并使用 YAML 文档分隔符 (---) 进行分隔,也可以放在从更高层级 skaffold.yaml 文件引用的不同 skaffold.yaml 文件中。您可以使用 .metadata.name 字段为模块命名,从而将配置转换为模块。

使用模块可让您独立开发和调试应用的各个部分。可以定义配置文件之间的依赖项和对特定模块的依赖项。

使用 Skaffold 模块调试应用

您可以以迭代方式开发和调试整个应用或一组已定义的模块。Skaffold 用于管理模块依赖项及其部署顺序。

Skaffold 模块使用入门示例

如需为应用选择模块,请参阅独立开发应用的各个部分

如果您尚未使用过 Skaffold 模块,并希望通过示例测试该功能,请参阅模块化为 frontendbackend留言板示例

如需查看使用各种技术和语言以及使用 Skaffold 模块开发的大型企业应用示例,请参阅 Bank of Anthos 示例

常见使用场景

本部分概述了一些常见使用场景示例,以演示在 IDE 中使用模块的时间和方式的不同场景。

微服务开发

您是一个前端开发者,主要处理 frontend 模块。作为微服务,frontend 没有对 backend 代码库的明确的代码或库依赖项,但需要部署 backend 和运行集群。

您可以使用基于 Skaffold 的项目(包含 frontend 模块定义)来从 Cloud Code IDE 部署到共享开发集群(后端团队也在其中部署其服务)并进行调试。DevOps 团队维护此共享集群。

在大多数情况下,您不使用或调试 backend 代码或更新 Kubernetes 配置。Skaffold 会构建和部署 frontend 所需的其他配置。将 Cloud Code 部署配置设置为仅迭代 frontend 模块。

您还可以将 frontendbackend 部署到本地集群,以实现更快的迭代体验。

跨边界微服务开发和调试

需要同时调试多个微服务时,您可以:

  • 打开父目录,其中含有模块源代码的所有子目录位于互相相对的位置
  • 选择用于部署(配置)的 skaffold.yaml 根文件
  • 配置 Cloud Code 部署配置,以仅迭代在本地提供的 frontendbackend 模块(当它们发生更改时,则为其相应的 Kubernetes 配置模块)。

您也可以为本地开发创建一个单独的根 skaffold.yaml 文件,其中包含静态数据服务器。

智能模块 YAML 修改

您是 DevOps 工程师,要为使用 Skaffold 模块的微服务开发者团队构建一个模板代码库。您希望确保在未手动运行 Skaffold 的情况下,模块定义中不会出现错误(例如循环依赖项或非唯一的模块名称)。您可以使用 Cloud Code IDE 来修改 Skaffold YAML 配置文件。

获取支持

如需在 IntelliJ IDE 中提交反馈或报告问题,请依次前往 Tools > Cloud Code > Help / About > Submit feedback or Report an issue,以便在 GitHub 上报告问题,或者在 Stack Overflow 上提问。