Connect Agent 概览

当您将 Google Cloud 之外的集群注册到您的舰队时,Google Cloud 使用名为 Connect Agent 的 Deployment 在集群和您的 Google Cloud 项目之间建立连接,并处理 Kubernetes 请求。 为在 Google Cloud 中运行的 GKE 集群建立连接不需要使用 Connect Agent。

这样,您就能够在 Google Cloud 中访问集群和工作负载管理功能(包括统一的界面 Google Cloud 控制台),以与集群进行互动。

如果将网络配置为允许出站请求,则可以将 Connect Agent 配置为遍历 NAT、出口代理和防火墙,以在集群的 Kubernetes API 服务器和 Google Cloud 项目之间建立长期的加密连接。启用此连接后,您可以使用自己的凭据重新登录集群并访问有关其 Kubernetes 资源的详细信息。这实际上复制了仅以其他方式提供给 GKE 集群使用的界面体验。

建立连接后,Connect Agent 软件可以交换账号凭据、技术详细信息,以及使用 Google Cloud 管理它们所需的已连接基础架构和工作负载的元数据,包括资源、应用和硬件的详细信息。

此集群服务数据与您的 Google Cloud 项目和账号相关联。Google 使用这些数据来维持集群和 Google Cloud 之间的控制平面,为您提供所请求的任何 GCP 服务和功能(包括提供支持、进行结算、提供更新),以及通过 Connect 衡量和改进 Connect 和 Google Cloud 服务的可靠性、质量、容量和功能。

您可以控制通过 Connect 发送的数据,也就是说,您的 Kubernetes API 服务器可以对通过 Connect 发出的所有请求执行身份验证授权写入审核日志。Google 和用户可以在集群管理员(例如通过 RBAC)为其授权后通过 Connect 访问数据或 API;集群管理员可以撤消该授权。

Connect IAM 角色

借助 Identity and Access Management (IAM),用户、群组和服务账号可访问 Google Cloud API 以及在 Google Cloud 产品中执行任务。

您需要提供特定的 IAM 角色才能启动 Connect Agent 并使用 Google Cloud 控制台或 Google Cloud CLI 与您的集群进行交互。这些角色不允许直接访问连接的集群。 如需详细了解如何通过 Google Cloud 控制台登录集群,请参阅通过 Google Cloud 控制台使用集群

其中一些角色允许您访问有关集群的信息,包括:

  • 集群名称
  • 公钥
  • IP 地址
  • 身份提供商
  • Kubernetes 版本
  • 集群大小
  • 其他集群元数据

Connect 使用以下 IAM 角色:

角色名称 角色名称 说明 权限
roles/gkehub.editor Hub Editor 提供对 GKE Hub 资源的修改权限。

Google Cloud 的权限

  • resourcemanager.projects.get
  • resourcemanager.projects.list

Hub 的权限

  • gkehub.memberships.list
  • gkehub.memberships.get
  • gkehub.memberships.create
  • gkehub.memberships.update
  • gkehub.memberships.delete
  • gkehub.memberships.generateConnectManifest
  • gkehub.memberships.getIamPolicy
  • gkehub.locations.list
  • gkehub.locations.get
  • gkehub.operations.list
  • gkehub.operations.get
  • gkehub.operations.cancel
  • gkehub.features.list
  • gkehub.features.get
  • gkehub.features.create
  • gkehub.features.update
  • gkehub.features.delete
  • gkehub.features.getIamPolicy
  • gkehub.fleet.*
roles/gkehub.viewer Hub Viewer 提供 Hub 和相关资源的只读访问权限。

Google Cloud 的权限

  • resourcemanager.projects.get
  • resourcemanager.projects.list

Hub 的权限

  • gkehub.memberships.list
  • gkehub.memberships.get
  • gkehub.memberships.generateConnectManifest
  • gkehub.memberships.getIamPolicy
  • gkehub.locations.list
  • gkehub.locations.get
  • gkehub.operations.list
  • gkehub.operations.get
  • gkehub.features.list
  • gkehub.features.get
  • gkehub.features.getIamPolicy
roles/gkehub.connect GKE Connect Agent 提供在外部集群和 Google 之间建立新连接的能力。 gkehub.endpoints.connect

资源用量和要求

通常,注册时安装的 Connect 代理会使用 500m 的 CPU 和 200Mi 的内存。但是,此使用情况可能因每秒向代理发出的请求数以及这些请求的大小而异。这些可能受到许多因素的影响,包括集群的大小、通过 Google Cloud 控制台访问集群的用户数(用户数和/或工作负载越多,请求次数越多)以及集群上启用舰队的功能数量。