本文档介绍了如何将应用部署到 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 代理。设置 Connect 网关,将已注册的集群连接到 Google Cloud。
请务必使用将用作 Cloud Deploy 执行服务账号的服务账号来设置网关。如果您不执行此操作,执行服务账号将没有部署到 GKE Enterprise 集群的必要权限。
设置 Cloud Deploy 以部署到 GKE Enterprise
创建目标配置。
您可以在交付流水线 YAML 中配置目标,也可以在单独的文件中配置目标。此外,您可以在同一文件中配置多个目标,但它们必须位于不同的
kind: Target
诗节中。向执行服务账号授予它所需的角色,以便它可以通过网关与已连接的集群进行交互。
无论您使用的是默认的 Cloud Deploy 服务账号还是自定义服务账号,都必须执行此授予操作。
可选:如果底层集群不是 GKE 集群,您可能需要配置 imagePullSecret,以允许集群从 Artifact Registry 拉取映像。
在目标定义中,创建一个
anthosCluster
诗节以指向 GKE Enterprise 集群:指定 GKE Enterprise 集群的语法如下:
anthosCluster: membership: projects/[project_name]/locations/global/memberships/[membership_name]
此 GKE Enterprise 资源标识符使用以下元素:
[
project_name
] 是您要运行此集群的 Google Cloud 项目的名称。您要部署到的集群(包括 GKE 企业版集群)不需要与交付流水线位于同一项目中。
[
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
详细了解 Connect 网关。