作为 vSphere 管理员,您需要具备激活和配置 主管 以及管理 vSphere 命名空间 的特权。您可以定义对命名空间的权限,以确定哪些 DevOps 工程师和开发人员可以访问这些命名空间。此外,还可以为 主管 配置外部 OpenID Connect (OIDC) 提供程序,以启用多因素身份验证。作为 DevOps 工程师或开发人员,您可以使用 vCenter Single Sign-On 凭据或 OIDC 提供程序提供的凭据对 主管 进行身份验证,具体取决于 vSphere 管理员在 主管 上为您配置的身份验证方法。您只能访问对其具有权限的 vSphere 命名空间

支持的身份提供程序

vSphere IaaS control plane 支持以下身份提供程序:

  • vCenter Single Sign-On.用于对 vSphere IaaS control plane 环境(包括 主管Tanzu Kubernetes Grid 集群)进行身份验证的默认身份提供程序。vCenter Single Sign-On 为 vSphere 基础架构提供身份验证,并可与 AD/LDAP 系统集成。有关 vCenter Single Sign-On 的详细信息,请参见使用 vCenter Single Sign-On 进行 vSphere 身份验证
  • 外部身份提供程序。作为 vSphere 管理员,您可以为 主管 配置支持 OpenID Connect 协议的外部身份提供程序。配置了外部身份提供程序后,主管 将作为 OAuth 2.0 客户端运行,并通过 Tanzu CLI 使用 Pinniped 身份验证服务连接到 Tanzu Kubernetes Grid 集群。Tanzu CLI 支持置备和管理 Tanzu Kubernetes Grid 集群的生命周期。每个 主管 实例支持一个外部身份提供程序。

使用 主管 进行身份验证

vSphere IaaS control plane 交互的不同角色可以使用以下方法对 主管 进行身份验证:

  • vSphere 管理员。作为 vSphere 管理员,您可以通过 vSphere Client 使用 vCenter Single Sign-On 对 vSphere 进行身份验证。您还可以通过 kubectl 使用 kubectl 的 vSphere 插件主管Tanzu Kubernetes Grid 集群进行身份验证。有关详细信息,请参见以 vCenter Single Sign-On 用户身份连接到主管
  • DevOps 工程师或开发人员。作为 DevOps 工程师或开发人员,您可以通过 kubectl 的 vSphere 插件kubectl 使用 vCenter Single Sign-On主管 进行身份验证。您还可以使用为 主管 配置的外部身份提供程序提供的凭据连接到该 主管。有关详细信息,请参见使用外部身份提供程序连接到主管上的 TKG 集群

主管 的登录会话

vCenter Single Sign-On 用户身份登录到 主管 时,身份验证代理会将请求重定向到 vCenter Single Sign-Onkubectl 的 vSphere 插件 会与 vCenter Server 建立会话,并从 vCenter Single Sign-On 获取身份验证令牌。它还会获取您有权访问的 vSphere 命名空间 列表,并使用这些 vSphere 命名空间 填充配置。如果您的用户帐户的权限发生变化,则下次登录时将更新 vSphere 命名空间 列表。

用于登录到 主管 的帐户仅提供对分配给您的 vSphere 命名空间 的访问权限。要登录到 vCenter Server,您的 vSphere 管理员必须为您的帐户设置对一个或多个 vSphere 命名空间 的适当权限。
注:kubectl 的会话将持续 10 小时。会话过期后,必须再次向 主管 进行身份验证。注销时,将从您的用户帐户的配置文件中删除令牌,但该令牌在会话结束之前一直有效。

Tanzu Kubernetes Grid 集群进行身份验证

作为 DevOps 工程师或开发人员,您可以连接到已置备的 Tanzu Kubernetes Grid 集群,以便对其进行操作和管理。在置备了 Tanzu Kubernetes Grid 集群的 vSphere 命名空间 上为您的用户帐户授予“编辑”或“所有者”权限时,系统会将您的帐户分配给 cluster-admin 角色。或者,也可以使用 kubernetes-admin 用户连接到 Tanzu Kubernetes Grid。还可以通过将用户或组绑定到默认或自定义 Pod 安全策略,向开发人员授予 Tanzu Kubernetes Grid 集群访问权限。有关详细信息,请参见使用 vCenter SSO 身份验证连接到主管上的 TKG 集群使用外部身份提供程序连接到主管上的 TKG 集群

vSphere 命名空间 角色权限

作为 vSphere 管理员,您可以向 DevOps 工程师或开发人员授予对 vSphere 命名空间 的“查看”、“编辑”或“所有者”权限。其用户或组必须在 vCenter Single Sign-On 或为 主管 配置的外部身份提供程序中可用。一个用户或组可以访问多个 vSphere 命名空间。每个 vSphere 命名空间 角色均允许执行以下操作:

角色 描述
可查看 用户或组的只读访问权限。用户或组可以登录到 主管 控制平面,并列出在 vSphere 命名空间 中运行的工作负载,例如 vSphere PodTanzu Kubernetes Grid 集群以及虚拟机。
可编辑 用户或组可以创建、读取、更新和删除 vSphere PodTanzu Kubernetes Grid 集群和虚拟机。属于管理员组的用户对 主管 中的所有命名空间都具有编辑权限。
所有者 具有“所有者”权限的用户或组可以:
  • vSphere 命名空间 中部署和管理工作负载。
  • 与其他用户或组共享 vSphere 命名空间
  • 使用 kubectl 创建和删除其他 vSphere 命名空间。具有“所有者”权限的用户共享命名空间时,他们可以将“查看”、“编辑”或“所有者”权限分配给其他用户或组。
注: vCenter Single Sign-On 中的可用用户支持所有者角色。不能将所有者角色用于外部身份提供程序中的用户或组。

有关创建和配置 vSphere 命名空间 的信息,请参见创建和配置 vSphere 命名空间

作为 vSphere 管理员,在为 vSphere 命名空间 配置角色权限、资源配额和存储后,您可以将 主管 控制平面的 URL 提供给 DevOps 工程师和开发人员,使其可以使用该 URL 登录到控制平面。登录后,DevOps 工程师和开发人员可以跨属于一个 vCenter Server 系统并配置了同一身份提供程序的 主管 访问具有权限的 vSphere 命名空间。当 vCenter Server 系统处于增强型链接模式时,DevOps 工程师和开发人员可以跨链接模式组中的所有可用 主管 访问具有权限的所有 vSphere 命名空间主管 控制平面的 IP 地址是 NSX 或负载均衡器(如果使用 VDS 网络连接)生成的虚拟 IP,用作 主管 控制平面的访问点。

vSphere 管理员权限

作为 vSphere 管理员,您的用户帐户通常可以具有以下权限:
对象 权限
vCenter Single Sign-On 用户 管理员组
vSphere 命名空间 用户 管理员组的成员将获得对所有 vSphere 命名空间 的“编辑”权限。
根据用于与 vSphere IaaS control plane 交互的界面,您可以使用获得的权限执行不同的操作:
接口 操作
vSphere Client 以管理员身份登录到 vSphere Client 后,您可以:
  • 激活和配置 主管
  • 为 DevOps 工程师或开发人员创建并配置具有资源分配和角色权限的 vSphere 命名空间。希望通过 kubectl 登录到 主管 控制平面以运行和管理工作负载的用户或组需要具有对 vSphere 命名空间 的角色权限。
  • 主管 上部署和管理 主管服务
kubectl 如果您使用 vCenter Single Sign-On 管理员帐户登录到 主管 控制平面,则可以:
  • 查看所有 vSphere 命名空间(包括系统 vSphere 命名空间,即,kube-system 和所有 vmware-system-* 命名空间)中的资源
  • 编辑所有非系统 vSphere 命名空间(通过 vSphere ClientvCenter Server API 创建的命名空间)中的资源。

但是,使用属于管理员组的帐户登录到 主管 控制平面时,您无法编辑任何集群级别资源,也无法使用 kubectl 创建 vSphere 命名空间 或创建角色绑定。您必须使用 vSphere Client 作为设置资源配额、创建和配置 vSphere 命名空间 以及设置用户权限的主界面。

DevOps 工程师和开发人员权限

作为 DevOps 工程师或开发人员,您的用户帐户通常需要以下权限:
对象 权限
vSphere 命名空间 “编辑”或“所有者”
vCenter Single Sign-On 用户 “无”或“只读”

作为 DevOps 工程师或开发人员,您可以使用 kubectl 作为与 vSphere IaaS control plane 交互的主界面。您必须能够通过 kubectl 的 vSphere 插件 登录到 主管 控制平面,才能查看、运行和管理 vSphere 命名空间 中分配给您的工作负载。因此,您的用户帐户需要具有对一个或多个 vSphere 命名空间 的“编辑”或“所有者”权限。

通常,您无需通过 vSphere Client主管 执行任何管理操作。但在某些情况下,您可能希望能够登录到 vSphere Client,以查看分配给您的帐户的 vSphere 命名空间 中的资源和工作负载。为此,您可能需要具有对 vSphere 的只读权限。

vSphere 命名空间 特权

vSphere 命名空间 特权控制您与 vSphere IaaS control plane 交互的方式。您可以在层次结构中的不同级别设置特权。例如,如果您在文件夹级别设置了某项特权,则可以将此特权传播到该文件夹中的一个或多个对象。“要求”列中列出的对象必须具有特权组,可以直接具有,也可以通过继承获得。
vSphere Client 中的特权名称 描述 要求 API 中的特权名称
允许磁盘取消配置操作 允许对数据存储执行取消配置操作。

数据存储

Namespaces.ManageDisks
备份工作负载组件文件 允许备份 etcd 集群的内容(仅在 VMware Cloud on AWS 中使用)。

集群

Namespaces.Backup
列出可访问的命名空间 允许列出可访问的 vSphere 命名空间

集群

Namespaces.ListAccess
修改集群范围的配置

允许修改 主管 配置,以及创建和删除 vSphere 命名空间

集群

Namespaces.ManageCapabilities
修改集群范围的命名空间自助服务配置 允许修改 vSphere 命名空间 自助服务配置。

集群

(用于激活和取消激活)

模板

(用于修改配置)

vCenter Server

(用于创建模板)
Namespaces.SelfServiceManage
修改命名空间配置

允许修改 vSphere 命名空间 配置选项,例如资源分配、用户权限和内容库关联。

集群

Namespaces.Manage
切换集群功能 允许操作 主管 集群功能的状态(仅在 VMware Cloud on AWS 内部使用)。

集群

不适用
将集群升级到较新版本 允许启动 主管 升级。

集群

Namespaces.Upgrade

主管服务 特权

主管服务 特权控制哪些用户可以在 vSphere IaaS control plane 环境中创建和管理 主管服务

表 1. 主管服务 特权
vSphere Client 中的特权名称 描述 要求 API 中的特权名称
管理主管服务 允许创建、更新或删除 主管服务。还允许在 主管 上安装 主管服务,以及创建或删除 主管服务 版本。

集群

SupervisorServices.Manage

虚拟机类特权

虚拟机类特权控制哪些用户可以在 vSphere 命名空间 上添加和移除虚拟机类。

表 2. 虚拟机类特权
vSphere Client 中的特权名称 描述 要求 API 中的特权名称
管理虚拟机类

允许在 主管vSphere 命名空间 上管理虚拟机类。

集群

VirtualMachineClasses.Manage

存储视图特权

凭借存储视图特权,您将能够在 vCenter Server 中查看存储策略,以便将存储策略分配给 vSphere 命名空间

表 3. 存储视图特权
vSphere Client 中的特权名称 描述 要求 API 中的特权名称
配置服务

允许特权用户使用所有存储监控服务 API。对于只读存储监控服务 API 的特权,使用 存储视图.查看

根 vCenter Server

StorageViews.ConfigureService
查看

允许特权用户使用只读存储监控服务 API。

根 vCenter Server

StorageViews.View