本页面适用于希望为团队设置和管理舰队使用的平台管理员。
在阅读本页面内容之前,请确保您熟悉舰队团队管理。
团队设置概览
您可以使用 Google Cloud CLI、 Google Cloud 控制台或 Terraform 设置团队。
设置团队的大致流程如下:
- 选择或创建要在其中设置团队访问权限的舰队,并确保您拥有正确的权限和 API 来完成设置。
- (可选但建议执行的操作)为舰队集群上的 Google 群组设置访问权限控制。
- 确定团队包含哪些用户。团队可以包括 Google 群组(推荐)和/或个人账号。
- 选择您希望为每位团队成员提供的舰队和团队资源访问权限级别。
- 为团队创建范围。
- 将一个或多个(或所有)舰队成员集群添加到团队范围内。
- 定义舰队级命名空间并将其与团队范围关联。
- (可选)使用 Config Sync 将 Kubernetes 资源同步到团队范围和命名空间。
然后,团队可以获取凭据以使用 Connect Gateway 访问其范围集群。
设置 Google Cloud CLI
即使您使用 Google Cloud 控制台创建团队范围,也可能需要在设置舰队时设置 gcloud CLI 以完善一些前提条件,例如启用所需的 API。
- 确保您拥有最新版本的 Google Cloud CLI,包括 Google Cloud CLI Alpha 版组件。您至少需要有版本 419.0.0 才能使用舰队团队管理命令。 
- 运行以下命令以登录 Google Cloud: - gcloud auth login
- 初始化 gcloud CLI 以用于您选择的舰队的宿主项目,或运行以下命令将舰队宿主项目设置为默认项目: - gcloud config set project PROJECT_ID- 如有需要,您可以在以下任何命令中使用 - --project标志,以指定其他舰队宿主项目。
设置舰队
选择或创建要在其中设置新团队的舰队。如需查看可帮助您构建舰队的准则和示例,请参阅舰队示例和规划舰队中的其他指南。
如果要在尚无舰队的项目中创建新的命名舰队,请运行以下命令(您需要先设置 Google Cloud CLI):
  gcloud container fleet create \
    --display-name=NAME \
    --project=FLEET_HOST_PROJECT_ID
如果您未指定 display-name,系统会根据舰队宿主项目名称使用默认显示名称创建新舰队。
所需 IAM 角色
如果您在舰队宿主项目中没有 roles/owner,则需要 roles/gkehub.admin 来创建和配置团队范围和命名空间。项目所有者可以使用以下命令授予此角色:
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member user:USER_EMAIL_ADDRESS \
    --role='roles/gkehub.admin'
启用 API
确保您的舰队宿主项目已启用所有必要的 API,包括 GKE API:
gcloud services enable --project=PROJECT_ID \
   gkehub.googleapis.com \
   container.googleapis.com \
   connectgateway.googleapis.com \
   cloudresourcemanager.googleapis.com \
   iam.googleapis.com \
   container.googleapis.com
如果您在配置舰队团队管理后停用 GKE API,则该功能的某些方面将继续有效,但您无法更新或创建团队范围或舰队命名空间。
配置集群以使用 Google 群组控制访问权限
虽然您可以使用 RBAC 按用户配置团队对舰队成员集群的访问权限,而无需进行任何额外的集群配置,但我们建议根据团队 Google 群组的成员身份来向团队成员授予集群的访问权限。基于群组成员资格进行授权意味着您无需为每个账号设置单独的授权,这样可以使政策更易于管理且更易于审核,并且无需在单个用户加入或离开团队时在集群中手动添加/移除用户。使用以下指南,确保要分配给团队范围的集群可以使用 Google 群组和 Connect 网关来控制访问权限:
- 对于 Google Cloud上的 GKE 集群,请按照为 RBAC 设置 Google 群组中的说明操作。
- 对于 Google Cloud外部的舰队成员集群,请按照使用 Google 群组设置 Connect 网关中的说明操作。
设置新小组
以下说明介绍了如何为团队创建新的团队范围。
选择团队访问权限
首先,确定或了解团队包含哪些用户。团队设置的一个重要部分是为这些团队成员授予对舰队的访问权限,包括在 Google Cloud 控制台中查看集群以及查看团队范围内的日志的权限。根据团队成员的角色,您可能还需要将在团队范围内创建命名空间的权限委托给团队成员(gkehub.ScopeAdmin 或 gkehub.ScopeEditor 提供),或者可让团队成员更新 RBAC 角色绑定(仅 gkehub.ScopeAdmin 提供)。
为了简化此设置,舰队团队管理提供了三个预定义权限角色供您选择,其中包括团队范围管理员、编辑者或查看者在使用其范围时可能需要的一整套 IAM 和 Kubernetes RBAC 权限。或者,您也可以选择对集群具有自定义 RBAC 权限的自定义角色。然后,您可以在设置团队时将这些角色分配给团队成员,如以下部分所述。
下表展示了向每个角色授予的各种类型的权限:
| 说明 | 类型 | Scope Admin 角色 | Scope Editor 角色 | Scope Viewer 角色 | 自定义角色 | 
|---|---|---|---|---|---|
| 有权访问团队范围及其命名空间。 | 针对团队范围的 IAM 绑定 | roles/gkehub.scopeAdmin | roles/gkehub.scopeEditor | roles/gkehub.scopeViewer | roles/gkehub.scopeViewer | 
| 有权访问舰队宿主项目,包括指标、长时间运行的操作和 Connect 网关。 | 针对舰队宿主项目的 IAM 绑定 | roles/gkehub.scopeEditorProjectLevel | roles/gkehub.scopeEditorProjectLevel | roles/gkehub.scopeViewerProjectLevel | roles/gkehub.scopeEditorProjectLevel | 
| 有权访问团队范围的日志存储桶。 | 针对舰队宿主项目的 IAM 绑定(条件是访问的资源是存储桶名称)。 | roles/logging.viewAccessor | roles/logging.viewAccessor | roles/logging.viewAccessor | roles/logging.viewAccessor | 
| 有权访问范围集群内的 Kubernetes 资源。 | 针对应用于团队范围的命名空间的范围的 RBAC 绑定。 | Kubernetes 默认角色:admin | Kubernetes 默认角色:edit | Kubernetes 默认角色:view | 用户定义的 ClusterRole | 
如上一部分所述,我们建议您根据 Google 群组成员资格为团队成员授予对其资源的访问权限,但团队管理功能还可让您向个别用户授予访问权限。
如果这些角色无法完全满足您的需求,您还可以单独绑定 IAM(使用 gcloud container fleet scopes add-iam-policy-binding)和 RBAC(使用 gcloud container fleet scopes rbacrolebindings create)角色。如需了解更多可用于管理这些绑定的命令,请参阅 Google Cloud CLI 参考文档。
设置团队范围
gcloud
创建团队范围
如需在舰队中创建新的团队范围,请运行以下命令,其中 SCOPE_NAME 是您为新范围选择的唯一标识名称:
gcloud container fleet scopes create SCOPE_NAME
将集群添加到团队范围
您只能将现有舰队成员添加到团队范围。以下说明假定您要添加到范围的集群已经是舰队成员。如果您需要将集群添加到舰队,请按照创建舰队中您的集群类型说明来注册集群。确保将新注册的集群配置为使用 Google 群组控制访问权限(如上所述)。
您可以将舰队成员集群添加到其舰队宿主项目中任意数量的团队范围。
如需将集群添加到团队范围,请运行以下命令:
gcloud container fleet memberships bindings create BINDING_NAME \
  --membership MEMBERSHIP_NAME \
  --scope  SCOPE_NAME \
  --location MEMBERSHIP_LOCATION
替换以下内容:
- BINDING_NAME:表示集群和团队范围之间的关系的名称。我们建议使用 MEMBERSHIP_NAME-SCOPE_NAME。
- MEMBERSHIP_NAME:集群在舰队中的唯一标识符(通常是集群名称)。
- (可选)MEMBERSHIP_LOCATION:集群的成员资格位置。如果您省略此值,则系统会使用集群注册的默认值 global。
创建舰队命名空间
若要在团队范围内创建命名空间,请运行以下命令:
gcloud container fleet scopes namespaces create NAMESPACE_NAME --scope=SCOPE_NAME
替换以下内容:
- NAMESPACE_NAME:您为舰队内的命名空间选择的唯一名称。确保 NAMESPACE_NAME 不与舰队命名空间命名限制冲突。
- SCOPE_NAME:要在其中使用命名空间的团队范围。
此命令会在团队范围内的每个集群中创建一个名为 NAMESPACE_NAME 的 Kubernetes 命名空间。向团队成员授予对范围的访问权限后,团队成员可以像使用任何其他 Kubernetes 命名空间一样使用 NAMESPACE_NAME。如果团队范围中已有名为 NAMESPACE_NAME 的 Kubernetes 命名空间,它将被视为新舰队命名空间的一部分。这有时称为引进命名空间。
为团队成员授予对团队范围的访问权限
使用预定义角色
接下来,确保相关 Google 群组已配置适当的 IAM 和 RBAC 权限,以便使用新的范围:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
        --role=ROLE --group=TEAM_EMAIL --project PROJECT_ID
- PROJECT_ID 是舰队宿主项目的 ID
- TEAM_EMAIL 是团队的 Google 群组的电子邮件地址。
- SCOPE_ID 是所创建范围的 ID
- ROLE 是群组在团队范围内具有的权限角色。此参数的值可以是 admin(Scope Admin)、edit(Scope Editor) 或view(Scope Viewer)。
如果您需要为个别用户授予对范围的访问权限,请改为运行以下命令,其中 USER_EMAIL 是用户的 Google ID 电子邮件地址:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
        --role=ROLE --user=USER_EMAIL --project PROJECT_ID
使用自定义角色
如需使用自定义角色,您需要先将相应自定义角色添加到 rbacrolebindingactuation 舰队功能:
gcloud container fleet rbacrolebindingactuation update --allowed-custom-roles CUSTOM_ROLE --project PROJECT_ID
接下来,确保相关 Google 群组已配置适当的 IAM 和 RBAC 权限,以便使用新的范围:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
        --custom-role=CUSTOM_ROLE --group=TEAM_EMAIL --project PROJECT_ID
替换以下内容:
- PROJECT_ID:舰队宿主项目的 ID。
- TEAM_EMAIL:团队的 Google 群组邮箱。
- SCOPE_ID:已创建的范围的 ID。
- CUSTOM_ROLE:已添加到 rbacrolebindingactuation功能的许可名单中的 Kubernetes ClusterRole。为了使该功能按预期运行,添加到范围中的每个集群都应具有该 ClusterRole。不过,即使不存在 ClusterRole,系统仍会创建资源。
如果您需要为个别用户授予对范围的访问权限,请改为运行以下命令,其中 USER_EMAIL 是用户的 Google ID 电子邮件地址:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
        --custom-role=CUSTOM_ROLE --user=USER_EMAIL --project PROJECT_ID
控制台
创建团队范围
- 选择舰队宿主项目后,前往 Google Cloud 控制台中的团队部分。 
- 点击页面顶部的创建团队范围。 
- 在团队基本信息页面的名称部分,输入您的团队范围的唯一名称。团队范围创建后,您将无法更改此名称。 
- 要向范围添加团队成员,请点击添加团队成员。 - 在类型部分,选择用户以添加单个团队成员,或选择群组以添加 Google 群组(推荐)。
- 在用户或群组部分,输入团队成员或群组的电子邮件地址。
- 在角色部分,选择 Scope Admin、Scope Editor 或 Scope Viewer,用于配置针对范围和舰队的多个 IAM 和 RBAC 绑定,如选择团队访问权限中所述。
 
- 如需在此阶段创建团队范围但不添加集群和命名空间,请点击创建团队范围。否则,请继续下一部分,将集群添加到范围。 
将集群添加到团队范围
如需将集群与团队范围相关联,则该集群必须是现有的舰队成员。如果您需要将集群添加到舰队,请按照创建舰队中您的集群类型说明来注册集群。确保将新注册的集群配置为使用 Google 群组控制访问权限(如上所述)。
舰队成员集群可以添加到其舰队宿主项目中的任意数量的团队范围,从而允许不同的团队在同一集群上运行工作负载。
- 在将团队成员添加到范围后,在团队基本信息页面中点击继续。
- 在集群页面中,您可以选择要与此团队范围关联的舰队集群。在集群下拉列表中,选中要添加的集群,然后点击确定。
创建舰队命名空间
团队成员可以像使用任何其他 Kubernetes 命名空间一样使用舰队命名空间。创建舰队命名空间时,系统会在团队范围内的所有集群中创建相应的 Kubernetes 命名空间(如果尚不存在)。
- 在将集群添加到团队范围后,在集群页面中点击继续。
- 在命名空间页面中,点击添加命名空间。
- 在名称部分,为舰队内的命名空间输入一个唯一名称,或者如果要引进现有命名空间,则输入该命名空间的名称。确保该名称与舰队命名空间命名限制不冲突。
 
- 如需向范围添加更多舰队命名空间,请重复上述步骤。
- 如需创建团队范围,请点击创建团队范围。创建团队范围后,您可以点击团队部分中的名称来查看和修改团队范围。
Terraform
本部分介绍如何使用 Terraform 设置新团队。如需了解详情和其他示例,请参阅以下资源的参考文档:
- google_gke_hub_scope
- google_gke_hub_membership_binding
- google_gke_hub_namespace
- google_gke_hub_scope_rbac_role_binding
- google_gke_hub_feature_rbacrolebindingactuation
创建团队范围
如需创建团队范围,您可以在 Terraform 配置中使用以下代码块。
  resource "google_gke_hub_scope" "TF_SCOPE_RESOURCE_NAME" {
    scope_id = "SCOPE_NAME"
  }
替换以下内容:
- TF_SCOPE_RESOURCE_NAME:您选择用来唯一标识此代码块创建的 Terraform google_gke_hub_scope资源的名称。
- SCOPE_NAME:您的团队范围的唯一标识名称。
将集群添加到范围
您只能将现有舰队成员添加到团队范围。如果您需要将集群添加到舰队,请按照创建舰队中您的集群类型说明来注册集群。确保将新注册的集群配置为使用 Google 群组控制访问权限(如上所述)。
如需将集群添加到团队范围,请在配置中使用以下代码块:
  resource "google_gke_hub_membership_binding" "TF_MEMBERSHIP_BINDING_RESOURCE_NAME" {
    membership_binding_id = "BINDING_NAME"
    scope = SCOPE_NAME
    membership_id = MEMBERSHIP_NAME
    location = "MEMBERSHIP_LOCATION"
  }
替换以下内容:
- TF_MEMBERSHIP_BINDING_RESOURCE_NAME:用于标识此代码块创建的 google_gke_hub_membership_binding资源的名称。
- BINDING_NAME:表示集群和范围之间的关系的名称。我们建议使用 MEMBERSHIP_NAME-SCOPE_NAME。
- SCOPE_NAME:您的团队范围的名称。
- MEMBERSHIP_NAME:集群在舰队中的唯一标识符(通常是集群名称)。
- MEMBERSHIP_LOCATION:集群的成员资格位置。
创建舰队命名空间
团队成员可以像使用任何其他 Kubernetes 命名空间一样使用舰队命名空间。 您可以创建新的命名空间,也可以引进现有命名空间。创建舰队命名空间时,系统会在团队范围内的所有集群中创建相应的 Kubernetes 命名空间(如果尚不存在)。
如需创建舰队命名空间,请在配置中使用以下代码块:
  resource "google_gke_hub_namespace" "TF_NAMESPACE_RESOURCE_NAME" {
    scope_namespace_id = "NAMESPACE_NAME"
    scope_id = SCOPE_NAME
    scope = SCOPE_NAME
  }
替换以下内容:
- TF_NAMESPACE_RESOURCE_NAME:用于标识此代码块创建的 google_gke_hub_namespace资源的名称。
- NAMESPACE_NAME:您为舰队命名空间选择的唯一名称。确保此名称与舰队命名空间命名限制不冲突。
- SCOPE_NAME:在其中创建舰队命名空间的团队范围的名称。
授予范围访问权限
使用预定义角色
如上一部分所述,您可以使用可提供 IAM 和 RBAC 权限的权限角色为团队成员授予对其范围的访问权限。例如,以下配置可向个人用户授予团队范围访问权限:
module "TF_SCOPE_RESOURCE_NAME_USER_EMAIL" {
  source           = "terraform-google-modules/kubernetes-engine/google//modules/fleet-app-operator-binding"
  scope_id = "SCOPE_NAME"
  user = "USER_EMAIL"
  role = "ROLE"
}
替换以下内容:
- TF_SCOPE_RESOURCE_NAME:范围的名称。
- BINDING_NAME:表示此绑定的名称。
- SCOPE_NAME:团队范围的名称。
- USER_EMAIL:用户的电子邮件地址。
- ROLE:您要授予用户的角色,可以是 ADMIN、EDIT或VIEW。
如需向 Google 群组授予对团队范围的访问权限,请在上述配置中使用 group(而不是 user),并使用团队的 Google 群组的电子邮件地址。
使用自定义角色
如需使用自定义角色,您需要先将相应自定义角色添加到 rbacrolebindingactuation 舰队功能:
resource "google_gke_hub_feature" "rbacrolebindingactuation" {
  name = "rbacrolebindingactuation"
  location = "global"
  spec {
    rbacrolebindingactuation {
      allowed_custom_roles = ["CUSTOM_ROLE"]
    }
  }
}
以下配置可向个人用户授予对团队范围的 RBAC 访问权限:
resource "google_gke_hub_scope_rbac_role_binding" "BINDING_NAME" {
  scope_id = "SCOPE_NAME"
  user = "USER_EMAIL"
  role {
    custom_role = "CUSTOM_ROLE"
  }
  depends_on = [google_gke_hub_feature.rbacrolebindingactuation]
}
替换以下内容:
- BINDING_NAME:表示此绑定的名称。
- SCOPE_NAME:团队范围的名称。
- USER_EMAIL:用户的电子邮件地址。
- CUSTOM_ROLE:已添加到 rbacrolebindingactuation功能的许可名单中的 Kubernetes ClusterRole。为了使该功能按预期运行,添加到范围中的每个集群都应具有该 ClusterRole。不过,即使不存在 ClusterRole,系统仍会创建资源。
您还需要添加其他项目级和范围级 IAM 权限,具体操作可参考 operator binding terraform 示例。
访问舰队命名空间
设置完成后,团队成员可以获取相关的集群凭据来访问其范围内的命名空间。如需使用 Connect 网关获取舰队成员集群的凭据,请运行以下命令,其中 MEMBERSHIP_NAME 是集群的舰队成员资格名称:
   gcloud container fleet memberships get-credentials  MEMBERSHIP_NAME
如需了解详情,请参阅使用 Connect Gateway。
管理团队范围
使用以下命令管理团队范围。
gcloud
列出团队范围
如需列出舰队中的所有范围,请运行以下命令:
gcloud container fleet scopes list
如需列出与某个集群关联的所有范围,请运行以下命令:
gcloud container fleet memberships bindings list --membership MEMBERSHIP_NAME
从团队范围中移除集群
如需从范围中移除集群,请运行以下命令:
gcloud container fleet memberships bindings delete BINDING_NAME --membership MEMBERSHIP_NAME
删除团队范围
如需从舰队中删除范围,请运行以下命令:
gcloud container fleet scopes delete SCOPE_NAME
控制台
列出团队范围
如需查看舰队中的所有范围,选择舰队宿主项目,然后前往 Google Cloud 控制台中的团队部分。
团队页面显示为舰队创建的所有团队范围的列表。对于每个范围,您可以查看其在指定时间段内的资源利用率摘要,以及预估每月费用、错误数和容器重启次数。
您可以通过点击费用优化来查看更详细的与费用相关的利用率指标。
查看团队范围详细信息
对于每个团队范围,您可以查看详细信息,包括与该范围关联的标签、团队成员以及团队范围的日志。
- 在团队页面上,点击要查看其详细信息的团队范围。
- 在团队标签页中,您可以查看范围标签(如有),并查看团队成员。
- 点击监控标签页以查看团队的资源利用率指标。
- 点击集群标签页以查看团队范围的集群。
- 点击命名空间标签页以查看此团队范围内的舰队命名空间。
- 点击日志标签页以查看团队范围日志。
在团队范围内添加或删除集群
若要在现有团队范围内添加或删除集群,请执行以下操作:
- 前往 Google Cloud 控制台中的团队页面: 
- 选择要在其中添加或删除集群的团队范围。集群标签页显示当前绑定到范围的集群列表。 
如需将集群添加到团队范围,请执行以下操作:
- 点击页面顶部的添加集群。
- 在集群下拉列表中,选择要添加到范围的集群,然后点击确定。
- 点击更新团队范围。
如需从团队范围中删除集群,请执行以下操作:
- 选择集群标签页,其中显示当前绑定到该范围的集群的列表。
- 点击要删除的集群旁边的回收站图标,然后点击移除以确认删除。
删除范围
- 前往 Google Cloud 控制台中的团队页面: 
- 选择您要删除的团队范围。 
- 要删除范围,请点击页面顶部的删除。 
- 输入您的范围名称以确认删除,然后再次点击删除。 
管理舰队命名空间
gcloud
使用以下命令管理团队范围内的命名空间。
列出舰队命名空间
如需列出范围中使用 fleet scopes namespaces create 创建的所有命名空间,请运行以下命令:
gcloud container fleet scopes namespaces list --scope=SCOPE_NAME
删除舰队命名空间
如需删除舰队命名空间,请运行以下命令:
gcloud container fleet scopes namespaces delete NAMESPACE_NAME --scope=SCOPE_NAME
请注意,删除舰队命名空间时发生的情况取决于您添加命名空间的方式:
- 如果您创建了新的舰队命名空间:此命令会删除该舰队命名空间。它还会删除因创建舰队命名空间创建的所有 Kubernetes 命名空间及其工作负载。
- 如果您已引进现有 Kubernetes 命名空间:此命令会删除舰队命名空间。您引进的原始命名空间不会被删除。
控制台
如需管理团队范围内的舰队命名空间,请执行以下操作:
- 前往 Google Cloud 控制台中的团队页面: 
- 选择您要管理其舰队命名空间的团队范围。 
列出舰队命名空间
在团队范围内,选择命名空间标签页,其中会显示此范围内创建的命名空间列表。
查看命名空间详细信息
对于每个舰队命名空间,您可以查看与该命名空间关联的标签,以及按该命名空间过滤的工作负载和日志。
- 选择命名空间标签页,其中显示了在团队范围内创建的舰队命名空间的列表。
- 点击您要查看其详细信息的舰队命名空间。
- 在详细信息标签页中,您可以看到舰队命名空间和范围标签。
- 如需查看此命名空间的工作负载,请点击查看工作负载。
- 在工作负载页面中,您可以看到已按命名空间和与该命名空间的团队范围关联的集群过滤的工作负载。
 
- 在日志标签页中,您可以按命名空间查看舰队范围日志。
将舰队命名空间添加到团队范围
- 要添加新的舰队命名空间,请点击页面顶部的添加命名空间。
- 输入新舰队命名空间的名称,确保该名称不与舰队命名空间命名限制冲突。要添加更多命名空间,请点击添加命名空间。
- 点击更新团队范围。
删除舰队命名空间
- 选择命名空间标签页,其中显示了在团队范围内创建的舰队命名空间的列表。
- 点击要删除的命名空间旁边的回收站图标。
- 输入您的命名空间名称以确认删除,然后再次点击删除。
请注意,执行此操作时发生的情况取决于您添加命名空间的方式:
- 如果您创建了新的舰队命名空间:该舰队命名空间将被删除。因创建舰队命名空间而创建的所有 Kubernetes 命名空间及其工作负载也会被删除。
- 如果您已引进现有 Kubernetes 命名空间,则系统会删除舰队命名空间。但是,您引进的原始命名空间不会被删除。
更新舰队命名空间名称
舰队命名空间一经创建便无法修改。如果您需要更新舰队命名空间名称,请删除该命名空间,然后在团队范围内新建一个。
管理团队访问权限
gcloud
列出团队成员
如需列出使用 add-app-operator-binding 命令获得团队范围的访问权限的所有团队成员及其权限角色,请使用以下命令:
gcloud beta container fleet scopes list-app-operator-bindings SCOPE_NAME
替换以下内容:
- SCOPE_NAME:团队范围的唯一标识符。
移除团队成员
如需移除团队成员的范围访问权限(使用 add-app-operator-binding 授予),请使用以下命令:
gcloud beta container fleet scopes remove-app-operator-binding SCOPE_NAME \
   --group=TEAM_EMAIL
或
gcloud beta container fleet scopes remove-app-operator-binding SCOPE_NAME \
   --user=USER_EMAIL
替换以下内容:
- SCOPE_NAME:团队范围的唯一标识符。
- TEAM_EMAIL 或 USER_EMAIL:您要从团队中移除的群组或用户的电子邮件地址。
如果使用 rbacrolebindings create 命令为团队成员授予了访问权限,请改用 rbacrolebindings delete 命令来移除该团队成员。
更新团队范围访问权限
如需更新团队范围访问权限(例如,向团队成员授予其他角色或更新群组电子邮件地址),请按照上一部分中所述从范围中移除相应团队成员,然后使用新的详细信息再次向其授予访问权限。
如果使用 rbacrolebindings create 命令为团队成员授予了访问权限,您可以改用 rbacrolebindings update 命令来更新成员的访问权限。
控制台
添加或移除团队成员
如需管理团队范围内的团队成员,请执行以下操作:
- 前往 Google Cloud 控制台中的团队页面: 
- 选择您要管理其成员的团队范围。 
要向范围添加新的团队成员,请执行以下操作:
- 点击页面顶部的添加团队成员。按照创建团队范围部分中详细介绍的说明操作。
- 点击更新团队范围。
如需从范围中移除团队成员,请执行以下操作:
- 在团队标签页中,点击要从团队范围中移除的团队成员旁边的回收站图标。
- 再次点击删除,确认删除该规则。
您无法在 Google Cloud 控制台中修改团队成员的详细信息。如需在 Google Cloud 控制台中更新范围访问权限(例如,向团队成员授予其他角色或更新群组邮箱),请从范围中移除相应团队成员,然后重新添加这些团队成员和新的详细信息。
舰队命名空间命名限制
当您在团队范围内创建舰队命名空间时,系统会预留并禁止使用以下名称:
- default
- kube-system
- gke-connect
- kube-node-lease
- kube-public
- istio-system
- gatekeeper-system
- asm-system
- config-management-system
- anthos-creds
- anthos-identity-service
- capi-kubeadm-bootstrap-system
- capi-system
- cert-manager
- gke-managed-metrics-server
- gke-system
- config-management-monitoring
- istio-gateway
- knative-serving
- resource-group-system
- gke-mcs
- appdevexperience
- vm-system
- gmp-system
- gmp-public
- gke-gmp-system
- gke-managed-filestorecsi
- apigee
- apigee-system
管理标签
为了帮助您识别和管理范围,您可以使用 Google Cloud CLI 为舰队命名空间和团队范围创建和管理标签。
添加到团队范围内的标签由该范围中的所有舰队命名空间继承,这意味着它们将附加到范围集群中的所有 Kubernetes 命名空间。直接添加到舰队命名空间的标签仅附加到其相应的 Kubernetes 命名空间。 如果团队范围标签和舰队命名空间标签具有相同的键,则团队范围标签优先。
通过添加以英文逗号分隔的键值对列表,您可以同时处理多个键值对。
管理舰队命名空间标签
创建带有标签的舰队命名空间
如需创建带有标签的舰队命名空间,请运行以下命令:
gcloud container fleet scopes namespaces create NAMESPACE_NAME \
    --scope SCOPE_NAME \
    --namespace-labels KEY=VALUE
替换以下内容:
- NAMESPACE_NAME:您为舰队内的命名空间选择的唯一名称。
- SCOPE_NAME:要在其中使用命名空间的团队范围。
- KEY:标签键值对的键。
- VALUE:标签的键值对值。
为现有舰队命名空间添加或更新标签
要为现有命名空间添加或更新标签,请运行以下命令:
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
    --scope SCOPE_NAME \
    --update-namespace-labels KEY=VALUE
删除舰队命名空间标签
如需删除特定的舰队命名空间标签,请运行以下命令:
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
    --scope SCOPE_NAME \
    --remove-namespace-labels KEY
将 KEY 替换为您要移除的标签的键列表(以英文逗号分隔)。
如需删除所有舰队命名空间标签,请运行以下命令:
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
    --scope SCOPE_NAME \
    --clear-namespace-labels
管理团队范围标签
创建带有标签的团队范围
如需创建带有标签的范围,请运行以下命令:
gcloud container fleet scopes create SCOPE_NAME \
    --namespace-labels KEY=VALUE
替换以下内容:
- SCOPE_NAME:您为新团队范围选择的唯一标识名称。
- KEY:标签键值对的键。
- VALUE:标签的键值对值。
为现有团队范围添加或更新标签
要为现有范围添加或更新标签,请运行以下命令:
gcloud container fleet scopes update SCOPE_NAME \
    --update-namespace-labels KEY=VALUE
删除团队范围标签
要删除特定标签,请运行以下命令:
gcloud container fleet scopes update SCOPE_NAME \
     --remove-namespace-labels KEY
将 KEY 替换为您要移除的标签的键列表(以英文逗号分隔)。
如需删除所有标签,请运行以下命令:
gcloud container fleet scopes update SCOPE_NAME \
    --clear-namespace-labels
后续步骤
- 参阅使用团队概览,了解如何查看团队级指标和其他特定于团队的信息。
- 了解如何使用 Config Sync 将 Kubernetes 资源同步到团队范围和命名空间。