部署到 GKE 关联集群

本文档介绍了如何将应用部署到 GKE 关联集群。对 GKE 关联集群的支持可实现向 AWS、Azure 和本地集群的部署。

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

准备工作

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

    集群可以创建为 GKE 关联集群,也可以 注册现有 Kubernetes 集群。 您创建为 GKE 关联集群的集群会自动获得成员资格。对于您 注册到舰队的现有集群,您 可以在注册时指定成员资格名称。配置目标时,您需要使用此成员资格名称。

    如果您使用的是 Google Cloud CLI 407.0.0 版或更高版本,则在注册 Google Kubernetes Engine 集群时,需要在 --install-connect-agent 标志的 gcloud container fleet memberships register 命令中添加 ,默认情况下,Connect 代理不再安装。

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

    请务必使用将用作 Cloud Deploy 执行服务账号的同一服务帐号来设置网关。否则,执行服务账号将没有部署到集群所需的权限。

设置 Cloud Deploy 以部署到 GKE 关联集群

  1. 创建您的目标配置

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

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

    无论您使用的是默认 Cloud Deploy 服务帐号还是自定义服务账号,都需要进行此授予。

  3. 在底层 Kubernetes 集群上执行服务账号设置 RBAC。

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

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

    指定 GKE 关联集群的语法如下所示:

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

    此 GKE 关联集群资源标识符使用以下元素:

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

以下是一个示例目标配置:

      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

后续步骤