Connect Agent 概览

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

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

这样,您就能够在 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 Console 或 Google Cloud CLI 与您的集群进行交互。这些角色不允许直接访问连接的集群。

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

  • 集群名称
  • 公钥
  • 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 登录

Authentication

Google Cloud 提供了多个从 Google Cloud Console 登录已注册集群的选项。您的可用选项取决于您的集群管理员配置身份验证的方式:

  1. 如果集群已设置为使用 Connect 网关,则您可以使用 Google Cloud Identity 登录,就像使用 Google Cloud 上的 GKE 集群登录一样。
  2. 如果集群已设置为将 Anthos Identity Service 与 OpenID Connect (OIDC) 提供商(例如 ADFS 或 Okta)或 LDAP 提供商搭配使用,则您可以使用该提供商提供的身份登录。
  3. 您可以使用不记名令牌登录。支持 Kubernetes 身份验证中指定的多种不记名令牌。最简单的方法是在集群中创建 Kubernetes 服务帐号 (KSA),并使用其不记名令牌登录。

如需详细了解如何使用这些选项,请参阅从 Google Cloud 控制台登录集群

授权

集群的 API 服务器会针对您通过 Google Cloud Console 进行身份验证时使用的身份执行授权检查。

所有登录集群的帐号至少需要具有集群中的以下 Kubernetes RBAC 角色:

这些角色提供对集群及其节点的详细信息的只读权限。它们不提供对所有资源的访问权限,因此 Google Cloud Console 的某些功能可能无法使用;例如,这些角色不允许访问 Kubernetes Secret 或 Pod 日志。

可以向帐号授予其他 RBAC 权限,例如通过 editcluster-admin 在集群内中执行更多操作。如需了解详情,请参阅 RBAC 文档。

审核

集群的 API 服务器会将通过 Google Cloud 控制台进行的访问写入审核日志

资源用量和要求

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