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