本节中的主题介绍了如何在具有独立管理集群的 Tanzu Kubernetes Grid (TKG) 中配置身份和访问管理。
要启用和配置身份与访问管理,请遵循以下链接的主题:
Tanzu Kubernetes Grid (TKG) 使用 Pinniped 对身份和访问管理实施身份验证和授权。
Tanzu Kubernetes Grid 使用 Pinniped (Kubernetes 集群的开源身份验证服务)实施用户身份验证。Pinniped 允许您将外部 OpenID Connect (OIDC) 或 LDAP 身份提供程序 (IdP) 插入工作负载集群,以便您可以控制用户对这些集群的访问。对于 LDAP 身份验证,Pinniped 使用 Dex 作为连接到上游 LDAP IdP 的端点。如果使用 OIDC,Pinniped 会提供自己的端点,因此不需要 Dex。如果启用身份管理,Pinniped 和 Dex 会自动作为管理集群中的集群内服务运行。有关如何在 Tanzu Kubernetes Grid 中启用身份管理的说明,请参见配置身份管理。
管理集群和工作负载集群之间的身份验证流程包括:
kubeconfig
。kubeconfig
连接到工作负载集群,例如,通过运行 kubectl get pods --kubeconfig
。kubectl get pods
请求,具体取决于用户角色的权限。在下图中,蓝色箭头表示工作负载集群、管理集群和外部 IdP 之间的身份验证流。绿色箭头表示 Tanzu CLI 和工作负载集群、管理集群和外部 IdP 之间的 Tanzu CLI 和 kubectl
流量。
下图显示了启用身份管理时,Tanzu Kubernetes Grid 部署在管理集群和工作负载集群中的身份管理组件。
了解此图:
紫色边框长方形显示身份管理组件,其中包括管理集群中的 Pinniped、Dex 和部署后作业,以及工作负载集群中的 Pinniped 和部署后作业。在 Tanzu Kubernetes Grid v1.3.0 中,Pinniped 使用 Dex 作为 OIDC 和 LDAP 提供程序的端点。在 v1.3.1 及更高版本中,仅为 LDAP 提供程序部署 Dex。如果在 v1.3.1 及更高版本中配置 OIDC 提供程序,Pinniped 将直接与您的提供程序进行通信,而无需通过 Dex。
灰色边框长方形显示 Tanzu Kubernetes Grid 用于控制身份管理组件生命周期的组件,其中包括 Tanzu CLI、tanzu-addons-manager
和 kapp-controller
。
绿色边框长方形显示为管理集群创建的 Pinniped 附加项密钥。
管理集群中的橙色边框长方形显示为工作负载集群创建的 Pinniped 附加项密钥。密钥将镜像到工作负载集群。
在内部,Tanzu Kubernetes Grid 将身份管理组件部署为自动管理的软件包,pinniped
。此软件包包含 pinniped
附加项。部署已启用身份管理的管理集群或将其作为部署后步骤启用时,Tanzu CLI 将为管理集群中的 pinniped
附加项创建 Kubernetes 密钥。tanzu-addons-manager
将读取包含 IdP 配置信息的密钥,并指示 kapp-controller
使用密钥中的配置信息配置 pinniped
附加项。
Tanzu CLI 会为从管理集群部署的每个工作负载集群创建单独的 pinniped
附加项密钥。所有密钥都存储在管理集群中。有关详细信息,请参见自动管理的软件包。
Tanzu Kubernetes Grid 使用基于角色的访问控制 (RBAC) 授权。有关如何配置 RBAC 的说明,请参见配置 RBAC。