将 Skaffold 与 Cloud Deploy 搭配使用

本文介绍了 Skaffold、Cloud Deploy 使用它的方式和原因,以及您需要执行哪些操作才能让它为您服务。

Cloud Deploy 使用 Skaffold 执行渲染和部署操作。您还可以将其用于本地开发、构建、测试和高级部署功能。但是,Cloud Deploy 仅需要 Skaffold 配置,以便标识要渲染和应用的清单。

什么是 Skaffold?

Skaffold 是一种命令行工具,可支持 Kubernetes 原生应用的持续开发。您可以使用 Skaffold 配置本地开发工作区,以与 Cloud Deploy 持续交付流水线搭配使用。

Skaffold 包括以下功能:

  • 它让您能够独立控制 CI/CD 流水线活动(构建、渲染、测试部署等)。

  • 它作为本地开发工具非常有用。

  • 借助 Skaffold 配置文件,您可以在同一个配置文件中通过不同的构建、测试和部署配置区分不同的环境。

Cloud Deploy 为何使用 Skaffold?

Google Cloud Deploy 使用 Skaffold 将渲染工具与交付流水线分开。您的交付流水线仅定义了从一个目标到另一个目标的进展,而您的 Skaffold 配置则定义了渲染哪些清单以及渲染方式。这使得清单渲染变得灵活,而不会影响您定义交付流水线的方式。

当您将 Skaffold 与 Cloud Deploy 搭配使用时,Skaffold 具有以下优势:

  • 轻松上手

    从本地开发循环开始。您可以与团队共享 skaffold.yaml 文件,从而为新的团队成员提供一致性。

  • 在各个部署目标之间一致控制渲染

    您可以将 Skaffold 配置文件用于不同目标的不同渲染和部署。

  • 选择渲染工具,而不会影响交付流水线的定义方式

    使用 Skaffold 可以让 Cloud Deploy 将交付流水线定义与渲染详细信息分开。这种分离可让您在不中断交付流水线的情况下进行清单实验。

  • 连贯的渲染过程

    渲染来源以及容器用于生成已渲染清单。

  • 部署健康检查

    这些命令由 Skaffold 执行,Cloud Deploy 使用它们。

Cloud Deploy 如何使用 Skaffold?

  • 在您创建版本时,渲染来源和对容器映像的引用会传递到 Cloud Deploy。

    在创建版本的过程中,Cloud Deploy 会调用 Cloud Build,后者反过来又调用 skaffold diagnoseskaffold render,以使用该渲染来源和这些映像来渲染一个或多个清单。

  • 您可以使用 Skaffold 配置文件来区分将应用于不同目标的清单。

  • Cloud Deploy 支持静态 Skaffold 模块

  • 部署时,Cloud Deploy 会调用 skaffold apply 以将渲染的清单应用于目标集群。

  • 除非您使用自定义目标,否则 Cloud Deploy 不支持使用其他部署者部署应用。不过,您可以使用 HelmKustomize 等工具作为渲染程序。如需详细了解 Cloud Deploy 在不使用特定部署者(如 Helm)的情况下如何进行部署,请参阅服务架构

让 Skaffold 为您服务

  1. 根据您的流水线需求配置 Skaffold。

    1. 确定您的交付流水线的需求。

      您将有多少个目标?每个目标的渲染和部署是否相同。如果进展中的每个目标的配置都相同,则无需使用 Skaffold 配置文件。您只需要一个 skaffold.yaml 文件,用于描述要渲染的清单。

    2. 如果适用,为每个目标创建 Skaffold 配置文件

      skaffold.yaml 文件中定义此配置文件,并在您的交付流水线定义进展序列绑定它。

      如需详细了解 Skaffold 配置文件,请参阅 Skaffold 文档。此外,在 Cloud Deploy 中管理清单文档也包含配置文件配置示例。

  2. 将 Cloud Deploy 连接到您的持续集成系统。

    在 CI 过程结束时,传递 skaffold.yaml、渲染来源以及要填充到已渲染清单中的容器映像。

  3. 可选:使用 Skaffold 设置本地开发循环。

    在 Cloud Deploy 中,使用 Skaffold 进行开发是可选的。为使 Cloud Deploy 运行,唯一需要的是一个 skaffold.yaml 文件,用于标识要渲染的清单。

后续步骤

  • 访问 Skaffold 网站,了解其工作原理以及用途。

  • 了解 Cloud Deploy 如何选择要使用的 Skaffold 版本、Skaffold 版本何时发生更改,以及如何确定当前正在使用的版本。

  • 了解如何将 Skaffold 配置文件与 Helm、Kustomize 和 kpt 等高级清单管理工具搭配使用。

  • 试用 Skaffold 配置文件演示