部署到 GKE Enterprise 用户集群

本文档介绍了如何将您的应用部署到 GKE Enterprise 集群。支持 GKE Enterprise 目标,可部署到 AWS、Azure 和本地集群。

借助 Cloud Deploy,您可以将基于容器的工作负载部署到您可以使用 Connect 网关访问的任何 GKE Enterprise 用户集群。

准备工作

  • 拥有要部署到的 GKE Enterprise 用户集群。

    此集群可以是您作为 GKE Enterprise 用户创建的集群 也可以 注册现有 Kubernetes 集群。 您为 GKE Enterprise 创建的集群会自动接收 会员。对于您要创建的 注册到舰队后,您就可以 在注册时指定会员名称。您需要为目标配置使用此会员名称。

    如果您使用的是 Google Cloud CLI 407.0.0 或更高版本,则需要 在--install-connect-agent gcloud container fleet memberships register 命令, Google Kubernetes Engine 集群时,您会注意到该问题。默认情况下,系统不再安装 Connect 代理。

  • 设置连接网关, 将已注册的集群连接到 Google Cloud。

    请务必使用将用作 Cloud Deploy 执行服务账号的服务账号来设置网关。如果您不执行此操作,执行服务账号将没有部署到 GKE Enterprise 集群所需的权限。

设置 Cloud Deploy 以部署到 GKE Enterprise

  1. 创建目标配置

    目标可以在交付流水线 YAML 中配置,也可以在 一个单独的文件。此外,您还可以在同一个文件中配置多个目标, 但它们必须位于不同的 kind: Target 节中。

  2. 执行服务账号授予它所需的角色,以便它可以通过网关与已连接的集群进行交互。

    无论您使用的是默认的 Cloud Deploy 服务账号还是自定义服务账号,都必须执行此授予操作。

  3. 为创建 RBAC 的 Kubernetes 集群上的执行服务账号设置 RBAC Anthos 集群。

  4. 可选:如果底层集群不是 GKE 您可能需要配置一个 imagePullSecret 以允许集群从 Artifact Registry 中拉取

  5. 在目标定义中,创建一个 anthosCluster 节,以指向 GKE Enterprise 集群:

    指定 GKE Enterprise 集群的语法如下:

    anthosCluster:
     membership: projects/[project_name]/locations/global/memberships/[membership_name]
    

    此 GKE Enterprise 资源标识符使用以下元素:

    • [project_name] 是您要运行此集群的 Google Cloud 项目的名称。

      要部署到的集群,包括 GKE Enterprise 不需要与您的交付位于同一项目中 流水线。

    • [membership_name] 是您 注册集群 一个舰队

    对于 location,所有 GKE Enterprise 集群成员资格都是 global,因此您无需更改此资源标识符中的 /locations/global/

以下是一个指向 GKE Enterprise 的目标配置示例 用户集群:

      apiVersion: deploy.cloud.google.com/v1
      kind: Target
      metadata:
       name: qsdev
      description: development cluster
      anthosCluster:
       membership: projects/my-app/locations/global/memberships/my-app-dev-cluster

后续步骤