将 Google 群组连接到 GKE on Azure
本文档介绍如何以 Google 群组成员的身份连接到 GKE on Azure。
与为各个用户创建单独的授权相比,使用 Google 群组授予集群访问权限更为高效。例如,假设您要将 50 个用户添加到集群 Administrator 群组,将 75 个用户添加到 Editor 群组,将 100 个用户添加到 Reader 群组。如果您要使所有这些用户都能够连接到集群,则需要在 Kubernetes 清单文件中为 225 位用户创建 RBAC 规则。但是,通过 Google 群组启用对集群的访问可以节省时间,因为您只需要为三个 Google 群组创建 RBAC 规则。
准备工作
如需以 Google 群组的成员身份连接到集群,您需要满足以下前提条件:
确保您拥有最新版本的 Google Cloud CLI。如需了解如何更新 gcloud CLI,请参阅
gcloud components update
。使用 GKE on Azure 1.25 版或更高版本,这是使用 Connect 网关进行
kubectl
访问所必需的。
通过 Google 群组连接到您的集群
如需授权 Google 群组连接到 GKE on Azure,请按照以下步骤操作:
使用以下命令启用
connectgateway
和cloudresourcemanager
API:gcloud services enable --project=PROJECT_ID \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.com
将
PROJECT_ID
替换为您的 Azure 项目的 ID。在项目的网域中创建一个名为
gke-security-groups
的群组(如果该群组尚不存在)。在
gke-security-groups
群组中创建一个或多个子群组以进行集群身份验证。将用户添加到新创建的子群组。
如需使用连接网关进行
kubectl
访问,您需要向 Google 群组授予 IAM 角色:为群组选择适当的角色。此角色决定了群组与 Connect 网关的交互方式。角色可以是以下之一:
roles/gkehub.gatewayAdmin
、roles/gkehub.gatewayEditor
或roles/gkehub.gatewayReader
。(请注意,在此步骤中,您不授予对集群的权限,该步骤将在后面执行。在这里,您只是确定群组用户操作 Connect 网关的方式。)运行以下命令,向群组授予角色:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=group:GROUP_NAME@DOMAIN \ --role=GATEWAY_ROLE
替换以下内容:
PROJECT_ID
:您的 Google 项目 IDGROUP_NAME
:要授予访问权限的群组的名称DOMAIN
:您的 Google Workspace 网域GATEWAY_ROLE
:所选角色。例如roles/gkehub.gatewayAdmin
、roles/gkehub.gatewayEditor
或roles/gkehub.gatewayReader
。
在 Kubernetes 清单中,定义每个 Google 群组拥有的集群权限。例如,以下清单向 Google 群组
cluster-admin-team
授予集群管理员角色:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-group subjects: - kind: Group name: cluster-admin-team@example.com roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
通过运行以下命令将清单保存为文件并应用于集群:
kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
替换以下内容:
KUBECONFIG_PATH
:kubeconfig
文件的路径。FILENAME
:您创建的清单文件的名称。
执行这些步骤后,属于特定 Google 群组的用户便可以连接到集群。在此示例中,属于 Google 群组 cluster-admin-team
的用户可以作为管理员连接到集群。