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 模块,并希望通过示例测试该功能,请参阅模块化为 frontend
和 backend
的留言板示例。
如需查看使用各种技术和语言以及使用 Skaffold 模块开发的大型企业应用示例,请参阅 Bank of Anthos 示例。
常见使用场景
本部分概述了一些常见使用场景示例,以演示在 IDE 中使用模块的时间和方式的不同场景。
微服务开发
您是一个前端开发者,主要处理 frontend
模块。作为微服务,frontend
没有对 backend
代码库的明确的代码或库依赖项,但需要部署 backend
和运行集群。
您可以使用基于 Skaffold 的项目(包含 frontend
模块定义)来从 Cloud Code IDE 部署到共享开发集群(后端团队也在其中部署其服务)并进行调试。DevOps 团队维护此共享集群。
在大多数情况下,您不使用或调试 backend
代码或更新 Kubernetes 配置。Skaffold 会构建和部署 frontend
所需的其他配置。将 Cloud Code 部署配置设置为仅迭代 frontend
模块。
您还可以将 frontend
和 backend
部署到本地集群,以实现更快的迭代体验。
跨边界微服务开发和调试
需要同时调试多个微服务时,您可以:
- 打开父目录,其中含有模块源代码的所有子目录位于互相相对的位置
- 选择根
skaffold.yaml
文件以进行部署(配置) - 配置 Cloud Code 部署配置,以仅迭代在本地提供的
frontend
和backend
模块(当它们发生更改时,则为其相应的 Kubernetes 配置模块)。
您也可以为本地文件创建单独的根 skaffold.yaml
文件
包含静态数据服务器的开发。
智能模块 YAML 修改
您是 DevOps 工程师,要为使用 Skaffold 模块的微服务开发者团队构建一个模板代码库。您希望确保在未手动运行 Skaffold 的情况下,模块定义中不会出现错误(例如循环依赖项或非唯一的模块名称)。您可以使用 Cloud Code IDE 来修改 Skaffold YAML 配置文件。