DevOps 工程师连接到 vSphere IaaS control plane,以置备和管理 TKG 服务 集群的生命周期。开发人员连接到 TKG 服务 集群以部署软件包、工作负载和服务。管理员可能需要直接访问 TKG 服务 集群节点以进行故障排除。平台提供支持每个用例和角色的身份和访问管理工具和方法。
TKG 服务 集群访问范围限定为 vSphere 命名空间
您可以在 vSphere 命名空间 中置备 TKG 服务 集群。配置 vSphere 命名空间 时,可以设置其 DevOps 权限,包括标识源、用户和组以及角色。平台会将这些权限传播到在该 vSphere 命名空间 中置备的每个 TKG 服务 集群。平台支持两种身份验证方法:vCenter Single Sign-On 和符合 OIDC 的外部身份提供程序。
使用 vCenter Single Sign-On 和 Kubectl 进行身份验证
默认情况下,系统使用 vCenter Single Sign-On 对环境进行身份验证,包括 主管 集群和 TKG 服务 集群。vCenter Single Sign-On 为 vSphere 基础架构提供身份验证,并可与 AD/LDAP 系统集成。有关详细信息,请参见使用 vCenter Single Sign-On 进行 vSphere 身份验证。
要使用 vCenter Single Sign-On 进行身份验证,请使用 kubectl 的 vSphere 插件。通过身份验证后,您可以使用 kubectl 以声明方式置备和管理 TKG Service 集群的生命周期,并与 主管 进行交互。
kubectl 的 vSphere 插件 插件依赖于 kubectl。使用 kubectl vsphere login
命令进行身份验证时,该插件会对 主管 上的 /wcp/login 端点发出具有基本身份验证的 POST 请求。vCenter Server 颁发 主管 信任的 JSON Web 令牌 (JWT)。
要使用 vCenter Single Sign-On 进行连接,请参见使用 vCenter SSO 身份验证连接到 TKG 服务 集群。
使用外部身份提供程序和 Tanzu CLI 进行身份验证
您可以为 主管 配置支持 OpenID Connect 协议的外部身份提供程序。配置后,主管 将用作 OAuth 2.0 客户端,并使用 Pinniped 身份验证服务通过 Tanzu CLI 提供客户端连接。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 和 vCenter SSO 身份验证连接到 主管。
DevOps 的用户和组
配置 vSphere 命名空间 时建立的权限供 DevOps 用户管理 TKG 服务 集群的生命周期。为其分配权限的 DevOps 用户或组必须存在于标识源中。DevOps 用户使用其身份提供程序凭据进行身份验证。
角色权限和绑定
TKGS 集群有两种基于角色的访问控制 (RBAC) 系统:vSphere 命名空间 权限和 Kubernetes RBAC 授权。作为 vSphere 管理员,您可以分配 vSphere 命名空间 权限以允许用户创建和操作 TKG Service 集群。集群运维人员使用 Kubernetes RBAC 授予集群访问权限并向开发人员分配角色权限。请参见向开发人员授予对 TKG 服务 集群的 vCenter SSO 访问权限。
vSphere 命名空间 支持三个角色:可编辑、可查看和所有者。角色权限在托管 TKG 服务 集群的 vSphere 命名空间 中进行分配,并且权限范围也限于此命名空间。请参见配置 vSphere 命名空间 以便托管 TKG 服务 集群。
cluster-admin
的 Kubernetes ClusterRole。
cluster-admin
角色允许用户在目标
vSphere 命名空间 中置备和操作 TKG Service 集群。您可以在目标
vSphere 命名空间 中使用命令
kubectl get rolebinding
查看此映射。
kubectl get rolebinding -n tkgs-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
授予了 vSphere 命名空间 的可查看角色权限的用户/组对该 vSphere 命名空间 中置备的 TKG 服务 集群对象具有只读访问权限。但与可编辑特权不同,对于可查看角色,不会在该 vSphere 命名空间 中的 TKGS 集群上创建 Kubernetes RoleBinding。这是因为,在 Kubernetes 中,没有可以将授予了可查看权限的用户/组绑定到的等效只读角色。对于除 cluster-admin
以外的用户,您可以使用 Kubernetes RBAC 授予访问权限。请参见向开发人员授予对 TKG 服务 集群的 vCenter SSO 访问权限。
vSphere 权限
下表列出了各种 vSphere IaaS control plane 用户配置所需的 vSphere 权限类型。如果需要,您可以创建自定义 vSphere SSO 组和角色,以进行工作负载管理。请参见为平台运维人员创建专用组和角色。
用户配置 | 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 服务 集群。