本文档介绍了如何将应用部署到 GKE 关联集群。支持 GKE 关联集群,可将应用部署到 AWS、Azure 和本地集群。
借助 Cloud Deploy,您可以将基于容器的工作负载部署到可以使用 Connect 网关访问的任何 GKE 附加集群。
准备工作
拥有要部署到的用户集群。
您可以将集群创建为 GKE 关联集群,也可以注册现有 Kubernetes 集群。您以 GKE 关联集群身份创建的集群会自动获得成员资格。对于您注册到舰队的现有集群,您可以在注册时指定成员资格名称。配置目标时,您需要使用此会员资格名称。
如果您使用的是 Google Cloud CLI 407.0.0 版或更高版本,则在注册 Google Kubernetes Engine 集群时,需要在
gcloud container fleet memberships register命令中添加--install-connect-agent标志。默认情况下,不再安装 Connect 代理。设置 Connect 网关,以将已注册的集群连接到 Google Cloud。
请务必使用将用作 Cloud Deploy 执行服务账号的同一服务账号来设置网关。否则,执行服务账号将没有部署到集群所需的权限。
设置 Cloud Deploy 以部署到 GKE 关联集群
创建目标配置。
目标可以在交付流水线 YAML 中配置,也可以在单独的文件中配置。此外,您可以在同一文件中配置多个目标,但它们必须位于不同的
kind: Targetstanza 中。向执行服务账号授予所需的角色,以便该账号可以通过网关与连接的集群进行交互。
无论您使用的是默认 Cloud Deploy 服务账号还是自定义服务账号,都需要授予此权限。
可选:如果底层集群不是 GKE 集群,您可能需要配置 imagePullSecret,以允许集群从 Artifact Registry 中拉取映像。
在目标定义中,创建一个
anthosClusterstanza 以指向集群:指定 GKE 关联集群的语法如下所示:
anthosCluster: membership: projects/[project_name]/locations/global/memberships/[membership_name]此 GKE 关联集群资源标识符使用以下元素:
[
project_name] 是您运行此集群的 Google Cloud 项目的名称。您要部署到的集群(包括 GKE 附加集群)不需要与交付流水线位于同一项目中。
[
membership_name] 是您在将集群注册到舰队时选择的名称。
对于
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
后续步骤
详细了解如何配置 Cloud Deploy 目标
了解 Cloud Deploy 执行环境。
详细了解 GKE 关联集群
详细了解 Connect 网关。