连接到您的集群并进行身份验证

本页面介绍如何连接到 GKE on AWS 并进行身份验证。

您可以通过多种方式向 GKE 集群进行身份验证。以下所有选项都假定 Connect Gateway 或用户能够连接到集群的控制平面

Google 身份验证

默认情况下,GKE Multi-Cloud API 会向创建集群的用户授予 Kubernetes 基于角色的访问权限控制 (RBAC) 政策,允许用户使用其 Google 身份向集群进行身份验证。创建集群的用户可以将其他用户添加为管理员用户,以使这些用户拥有对集群的完整管理员权限。

除了向管理员用户授予 clusterrole/cluster-admin 角色的 RBAC 权限政策之外,GKE Multi-Cloud API 还会配置一项模拟政策来授权 Connect Agent 代表管理员用户向 Kubernetes API 服务器发送请求。

您可以通过以下方式使用 Google 身份向集群进行身份验证:

通过 gcloud CLI 将 kubectl 与身份搭配使用

您可以通过 Google Cloud CLI 创建 kubeconfig 来使用已通过 gcloud auth login 进行身份验证的用户的身份。然后,您便可以使用 kubectl 访问集群。

如需在使用 Connect Gateway 时访问 kubectl,如果管理员用户不是 Project Owner,那么他们必须至少具有项目中的以下角色:

  • roles/gkehub.gatewayAdmin:此角色允许用户访问 Connect Gateway API 以使用 kubectl 来管理集群。

    • 如果用户只需要对连接的集群的只读权限,您可以改为授予 roles/gkehub.gatewayReader

    • 如果用户需要所连接集群的读写权限,您可以授予 roles/gkehub.gatewayEditor

  • roles/gkehub.viewer:此角色可让用户检索集群 kubeconfigs

如需详细了解这些角色具备的权限,请参阅 IAM 文档中的 GKE Hub 角色

如需详细了解如何授予 IAM 权限和角色,请参阅授予、更改和撤消对资源的访问权限

管理员用户具备所需角色后,需按照为 kubectl 配置集群访问权限中的步骤操作。

使用 Google Cloud 控制台

如果管理员用户不是 Project Owner,但希望使用控制台与集群进行交互,那么他们必须至少具有以下角色:

  • roles/container.viewer。此角色允许用户在 Google Cloud 控制台中查看 GKE 集群页面和其他容器资源。如需详细了解此角色具备的权限,请参阅 IAM 文档中的 Kubernetes Engine 角色

  • roles/gkehub.viewer。此角色允许用户在 Google Cloud 控制台中查看 Google Cloud 外部的集群。请注意,这是访问 kubectl 所需的角色之一。如果您已向用户授予此角色,则无需再次授予。如需详细了解此角色具备的权限,请参阅 IAM 文档中的 GKE Hub 角色

如需详细了解如何授予 IAM 权限和角色,请参阅授予、更改和撤消对资源的访问权限

如需了解如何通过控制台登录集群,请参阅使用 Google Cloud 身份登录

使用 Google 群组

如需以 Google 群组的成员身份连接到集群,请参阅将 Google 群组连接到 GKE on AWS

使用 OIDC 进行身份验证

如需了解如何使用 OIDC 向集群进行身份验证,请参阅使用 GKE Identity Service 管理身份

使用 AWS IAM 进行身份验证

如需了解如何使用 AWS IAM 向集群进行身份验证,请参阅使用 GKE Identity Service 管理身份

使用外部身份进行身份验证

如需了解如何使用外部身份向集群进行身份验证,请参阅使用外部身份进行身份验证

连接到集群的控制平面

所有 GKE on AWS 都在专用子网中创建。所有底层集群基础架构(例如节点和负载均衡器端点)仅可通过专用 RFC 1918 IP 地址预配。

要直接管理集群,您必须能够连接到集群的控制平面负载均衡器。如果您的集群无法直接连接到您的控制平面,但可以建立出站连接,则您可以通过 Connect 网关(Google 托管的集群反向代理)连接到该控制平面。如需了解详情,请参阅使用 Connect 网关连接到已注册的集群

您还可以通过 AWS Direct Connect 建立连接。