设置自动部署


您可以为 Google Kubernetes Engine (GKE) 上的工作负载配置自动部署。

本页面介绍如何为工作负载设置简单的持续集成/持续交付 (CI/CD) 流水线。当您将更改推送到代码库时,Cloud Build 会自动构建容器并将其部署到您的 GKE 集群。

自动部署的工作原理

如果您的 GKE 工作负载引用单个容器映像,则可以配置自动部署,以便在每次将代码更改签入代码库时重新构建和部署应用。

通过自动部署,您可以将工作负载定义为 YAML 文件,并将该 YAML 文件存储到您的代码库中(与最佳做法一致)。GKE 会生成一个 YAML 供您用于实现此目的。

对于使用 YAML 文件,您有两种选择:

  • 如果您还没有用于定义工作负载的 YAML 文件,则可以使用生成的 YAML 文件。将 YAML 文件保存在您的代码库中。Cloud Build 每次都会使用它来部署工作负载。

  • 如果您已经有定义工作负载的 YAML 文件,则可以将 GKE 指向该文件在代码库中的位置。您可以将代码库中的 YAML 文件与建议的 YAML 文件进行比较,以确保以正确的方式部署正确的工作负载。

准备工作

在开始之前,请确保您已执行以下任务:

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行 gcloud components update 以获取最新版本。

要求

自动部署具有以下要求:

  • 自动部署只能用于类型为 Deployment 并指定单个容器映像的工作负载。不支持多容器工作负载和其他工作负载类型(例如 ReplicaSet)。

  • 您的源代码库必须包含一个用于构建映像的 Dockerfile。

    您可将此代码库托管在以下任一产品中:

    如果您使用 GitHub 或 Bitbucket,则需要授予 Google Cloud 访问您的代码库的权限。

  • 将您的容器映像存储在 Artifact Registry 中,且与您的 GKE 集群属于同一 Google Cloud 项目。您必须将该映像存储在 Artifact Registry 中,并且必须至少部署一次,以便在 GKE 中部署工作负载。

创建自动部署

如需创建自动部署,请执行以下步骤:

  1. 转到 Google Cloud 控制台中的工作负载页面。

    转到“工作负载”

  2. 在工作负载列表中,点击您要修改的 Deployment 的名称。

  3. 点击 操作 > 自动部署

自动部署窗格中,执行以下步骤:

  1. 源代码库下,选择您的源代码库:

    1. 代码库提供方下拉列表中,选择您的代码库的提供方。

      自动部署支持以下源控制主机:

      • Cloud Source Repositories
      • GitHub
      • Bitbucket

        如果您使用的是 GitHub 或 Bitbucket,请使用您的用户名和密码进行身份验证。

    2. 代码库下拉列表中,选择 Deployment 的源代码所属的代码库的名称。

    3. 点击继续

  2. 构建配置下,指定构建配置信息:

    1. 输入要从中进行构建的分支的名称,或输入正则表达式 (RegExp2) 以匹配该(或这些)分支。默认分支为 master。当您向此分支推送内容后,Cloud Build 将构建您的应用。
    2. 输入 Dockerfile 目录的相对路径。
    3. 输入 Dockerfile 名称

    4. 点击继续

  3. 自动部署配置下,提供配置 YAML 文件的位置。

    系统会自动生成一个 YAML 文件,您可以使用该文件来填充代码库中的 YAML 文件。

    1. 点击查看 Google 推荐的 YAML,以查看生成的 YAML 文件。

    2. 将生成的 YAML 文件与您自己的 YAML 文件(如有)进行比较,并根据此 YAML 文件更新您的 YAML 文件。

      否则,请创建一个新文件并使用生成的 YAML 填充该文件。这有助于确保已部署的工作负载与当前运行的工作负载相匹配。该文件可以采用任何名称,但必须以 .yaml.yml 为扩展名。

    3. 指定包含 YAML 文件的目录的相对路径。

      如果指定目录中有多个 YAML 文件,则 GKE 会使用所有这些文件。

  4. 点击设置以完成自动部署的配置。

    系统可能会提示您向 Cloud Build 服务账号授予权限。这个权限是必需的。

接下来会发生什么?

为所选工作负载设置自动部署后,您将拥有一个 Cloud Build 触发器,该触发器会在有内容推送到代码库的选定分支后构建容器映像。Cloud Build 会将工作负载的新修订版本部署到原始映像部署所在的集群。

如需详细了解您的工作负载,请参阅部署详情页面(“修订历史记录”标签页)。