DevOps 工程师连接到 主管,以置备和管理 Tanzu Kubernetes Grid 集群的生命周期。开发人员连接到 TKG 集群以部署软件包、工作负载和服务。管理员可能需要直接访问 TKG 集群节点以进行故障排除。vSphere with Tanzu 8 提供支持每个用例和角色的身份和访问管理工具和方法。

TKG 集群访问范围限定为 vSphere 命名空间

您可以在 vSphere 命名空间 中置备 TKG 集群。同样,在 vSphere 命名空间 级别设置 TKG 集群权限并确定其范围。配置 vSphere 命名空间 时,可以为该命名空间设置权限,包括标识源、用户和组以及角色。这些权限将应用于 vSphere 命名空间 中置备的任何 TKG 集群。

主管 中的 Tanzu Kubernetes Grid 支持两种用户/组身份验证方法:vCenter Single Sign-On符合 OIDC 的外部身份提供程序。

使用 vCenter Single Sign-On 和 Kubectl 进行身份验证

默认情况下,系统使用 vCenter Single Sign-OnvSphere with Tanzu 环境进行身份验证,包括 主管 集群和 TKG 集群。vCenter Single Sign-On 为 vSphere 基础架构提供身份验证,并可与 AD/LDAP 系统集成。有关 vCenter Single Sign-On 的详细信息,请参见使用 vCenter Single Sign-On 进行 vSphere 身份验证

要使用 vCenter Single Sign-On 进行身份验证,请使用 kubectl 的 vSphere 插件。通过身份验证后,可以使用 kubectl 以声明方式置备和管理 TKG 集群的生命周期、部署 TKG 集群工作负载以及部署 vSphere Pod主管服务 等其他 主管 功能。

kubectl-vsphere 插件依赖于 kubectl。使用 kubectl-vsphere 进行身份验证时,插件会对 主管 上的 /wcp/login 端点执行具有基本身份验证的 POST。然后,从 主管 信任的 vCenter 颁发 JSON Web 令牌 (JWT)。

要使用 vCenter Single Sign-On 进行连接,请参见使用 vCenter SSO 身份验证连接到 主管 上的 TKG 集群

使用外部身份提供程序和 Tanzu CLI 进行身份验证

除了 vCenter Single Sign-On 身份验证,您可以为 主管 配置支持 OpenID Connect 协议的外部身份提供程序。配置后,主管 将用作 OAuth 2.0 客户端,并使用 Pinniped 身份验证服务通过 Tanzu CLI 连接到 TKG 集群。Tanzu CLI 支持置备和管理 TKG 集群的生命周期。

每个 主管 实例支持单个外部身份提供程序。

适当配置身份验证插件和 OIDC 颁发者以使 pinniped-auth CLI 正常工作后,当您使用 tanzu login --endpoint 登录到 主管 时,系统会查找一些众所周知的配置映射以构建 pinniped config 配置文件。

要使用外部 OIDC 提供程序进行连接,请参见使用外部身份提供程序连接到 主管 上的 TKG 集群

使用混合方法进行身份验证:vCenter SSO 和 Tanzu CLI

如果使用 vCenter Single Sign-On 作为身份提供程序,并且要使用 Tanzu CLI,则可以采用混合方法,即使用 Tanzu CLI 和 kubectl 的 vSphere 插件 登录到 主管。此方法对于安装 Tanzu 软件包可能非常有用。请参见使用 Tanzu CLI 和 vCenter SSO 身份验证连接到 主管

用户和组

配置 vSphere 命名空间 时,可以向用户和组授予 TKG 集群访问权限。为其分配权限的用户或组必须存在于标识源中。用户使用其身份提供程序凭据(使用 vCenter Single Sign-On 凭据或使用外部身份提供程序)对 主管 上的 TKG 集群进行身份验证。

您可以根据开发人员的身份提供程序或在 Kubernetes 上使用集群角色和绑定向其授予访问权限。请参见向开发人员授予对 主管 上 TKG 集群的 vCenter SSO 访问权限

角色权限和 RoleBinding

主管 上的 TKG 集群支持以下角色:查看者、编辑者和所有者。角色权限在 vSphere 命名空间 中分配,且其权限也限于此命名空间。请参见为 主管 上的 TKG 集群配置 vSphere 命名空间

授予了 vSphere 命名空间可以查看角色权限的用户/组对该 vSphere 命名空间 中置备的 TKG 集群具有只读访问权限。

授予了 vSphere 命名空间可以编辑角色权限的用户/组可以在该 vSphere 命名空间 中创建、读取、更新和删除 TKG 集群。

授予了 vSphere 命名空间所有者权限的用户/组可以管理该 vSphere 命名空间 中的 TKG 集群,并且可以使用 kubectl 创建和删除其他 vSphere 命名空间
注: 来自 vCenter Single Sign-On 标识源的用户支持所有者角色。不能将所有者角色用于外部身份提供程序中的用户/组。
将用户/组分配给 可查看可编辑角色时,系统会创建 RoleBinding 并将其映射到 ClusterRole。例如,分配给 可编辑角色的用户/组通过 RoleBinding 映射到 Kubernetes cluster-admin ClusterRole。 cluster-admin 角色允许用户在目标 vSphere 命名空间 中置备和操作 TKG 集群。您可以在目标 vSphere 命名空间 中使用命令 kubectl get rolebinding 查看此映射。
kubectl get rolebinding -n tkg2-cluster-namespace
NAME                                                           ROLE                         AGE
wcp:tkg-cluster-namespace:group:vsphere.local:administrators   ClusterRole/edit             33d
wcp:tkg-cluster-namespace:user:vsphere.local:administrator     ClusterRole/edit             33d

将用户/组分配给所有者角色时,系统会创建 ClusterRoleBinding 并将其映射到允许用户/组使用 kubectl 创建和删除 vSphere 命名空间 的 ClusterRole。无法使用相同的方法查看此映射。必须通过 SSH 登录到 主管 节点才能查看此映射。

vSphere 权限

下表列出了各种 vSphere with Tanzu 用户配置所需的 vSphere 权限类型。

表 1. vSphere with Tanzu 用户配置的 vSphere 权限
用户配置 vSphere 角色 vSphere SSO 组 vSphere 命名空间
VI/云管理员 管理员 管理员 SSO 用户和/或 AD 用户
DevOps/平台运维人员 非管理员或自定义角色 ServiceProviderUsers SSO 用户和/或 AD 用户
开发人员 只读或无 SSO 用户和/或 AD 用户

系统管理员连接

管理员可以以 kubernetes-admin 用户身份连接到 TKG 集群节点。如果 vCenter Single Sign-On 身份验证不可用,则此方法可能适用。要进行故障排除,系统管理员可以使用 SSH 和私钥以 vmware-system-user 用户身份连接到 TKG 集群。请参见以 Kubernetes 管理员和系统用户身份连接到 主管 上的 TKG 集群