开始在 Cloud Deploy 中使用 Skaffold

本文档介绍了如何开始使用 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 CodeCloud Code for IntelliJ IDE 扩展程序将 Skaffold 集成到 Visual Studio Code 和 JetBrains IDE 中,以实现持续开发。

用于持续交付的 Skaffold

您还可以使用 Skaffold 实现持续交付,其中包含构建、部署、渲染和应用步骤。Cloud Deploy 使用 Skaffold 的渲染和应用功能。如需使用 Cloud Deploy,您至少需要一个有效的 skaffold.yaml 配置文件

通过 Skaffold,您还可以与第三方清单管理工具(如 HelmKustomize)集成。以这种方式使用 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
    
  • 一个 manifests stanza,用于 GKE、附加的 GKE 集群或 Cloud Run,列出所有原始 Kubernetes 清单(除非您使用的是清单管理工具,例如 Helm 或 Kustomize)。

    下面是一个使用原始 Kubernetes 清单的示例:

    manifests: