本文档介绍了如何开始使用 Skaffold 作为 Cloud Deploy 的一部分,包括以下内容:
- 配置 Skaffold 以便与 Cloud Deploy 交付流水线搭配使用
- 将 Skaffold 和 Cloud Deploy 与 Helm 和 Kustomize 等第三方渲染工具搭配使用
- (可选)使用 Skaffold 进行本地开发
- (可选)使用 Skaffold 实现持续集成和持续部署 (CI/CD)
为什么选择 Skaffold?
想知道 Cloud Deploy 为何使用 Skaffold,以及您为何需要管理 Skaffold 配置?请继续往下读。
我熟悉 CI/CD,但目前不使用 Skaffold
Skaffold 是一款开源命令行工具,可提高开发者的工作效率。它可编排持续开发、持续集成 (CI) 和持续交付 (CD)。
Skaffold 采用可插拔架构,提供声明式可移植配置,让您可以在渲染阶段使用不同的工具。
创建版本时,Cloud Deploy 会调用 Skaffold 来渲染清单。在部署时,Cloud Deploy 会再次调用 Skaffold 来应用这些清单,以便将应用部署到进展中的每个目标。部署后,Skaffold 会执行健康检查,以监控目标运行时是否成功部署。
使用 Skaffold 进行持续开发
当您使用 Skaffold 进行持续开发时,随着您更改代码,系统会构建、测试映像并将其部署到集群(或 Minikube)。Cloud Code for VS Code 和 Cloud Code for IntelliJ IDE 扩展程序将 Skaffold 集成到 Visual Studio Code 和 JetBrains IDE 中,以实现持续开发。
用于持续交付的 Skaffold
您还可以使用 Skaffold 实现持续交付,其中包含构建、部署、渲染和应用步骤。Cloud Deploy 使用 Skaffold 的渲染和应用功能。如需使用 Cloud Deploy,您至少需要一个有效的 skaffold.yaml 配置文件。
通过 Skaffold,您还可以与第三方清单管理工具(如 Helm 和 Kustomize)集成。以这种方式使用 Skaffold 可让您使用这些工具的功能来渲染清单。kubectl 仍然是这些清单的部署者。
我刚开始接触 Kubernetes 部署
借助 Skaffold,您可以为所有部署配置一组基本清单。然后,您可以通过 Cloud Deploy 使用 Skaffold 的渲染引擎来渲染,然后部署其中一个基本清单中的每个部署专用清单。
详细了解如何管理清单,包括将 Skaffold 和 Cloud Deploy 与常见的清单模板化工具(如 Helm 和 Kustomize)搭配使用的示例。
要使 Cloud Deploy 正常运行,需要满足哪些条件?
如需使用基本的 Cloud Deploy 交付流水线,skaffold.yaml 配置文件至少需要包含以下配置:
所有
skaffold.yaml配置都需要标头信息:apiVersion: skaffold/v4beta7 kind: Config一个
manifestsstanza,用于 GKE、附加的 GKE 集群或 Cloud Run,列出所有原始 Kubernetes 清单(除非您使用的是清单管理工具,例如 Helm 或 Kustomize)。下面是一个使用原始 Kubernetes 清单的示例:
manifests: