管理员可以使启用了 Tanzu 的 vSphere 集成上的主管命名空间可供用户使用,以便用户可以通过云模板将这些命名空间添加到 Kubernetes 部署,或者从 Service Broker 目录请求这些命名空间。
此任务将介绍如何使用 Cloud Assembly 添加 Tanzu 主管集群以便在部署中使用,以及如何创建或添加用于定义哪些 Cloud Assembly 项目和用户可以访问特定 Kubernetes 资源的命名空间。此功能依赖于合适的 vSphere 云帐户,而不是 VMware Tanzu Kubernetes Grid Integrated Edition (TKGI) 或 OpenShift 等集成。主管集群是与 vSphere 关联的自定义 Kubernetes 集群。它们向最终用户公开 Kubernetes API,并将 ESXi(而非 Linux)用作 Worker 节点的平台。主管命名空间有助于对 Kubernetes 资源进行访问控制,因为将策略应用于命名空间通常比应用于各个虚拟机更容易。可以为每个主管集群创建多个命名空间。
启用了 Tanzu 的部署还可以使用 vSphere 生成的客户机集群。客户机集群是指在主管集群上的虚拟机中运行的 Kubernetes 集群。客户机集群完全符合上游的 Kubernetes 要求,因此保证能够与所有 Kubernetes 应用程序配合使用。vSphere 中的客户机集群使用开源集群 API 项目对 Kubernetes 集群进行生命周期管理,而 Kubernetes 集群又使用 VM Operator 管理构成客户机的虚拟机。
与启用了 Tanzu 的 vSphere 实例一起使用时,Kubernetes 区域将定义哪些主管集群可用于置备主管命名空间。主管命名空间特定于启用了 Tanzu 的 vSphere 实例。无法将通用 Kubernetes 资源置备到启用了 Tanzu 的 vSphere 实例。
指定为项目查看者的 Cloud Assembly 用户对命名空间具有仅查看访问权限,而项目成员可以编辑命名空间。
如果需要,可以配置与命名空间关联的主管集群。
前提条件
- 要在 Cloud Assembly 中使用主管集群和命名空间,必须配置 vSphere 7.x 端点。在 vRealize Automation 中,vSphere 作为 vCenter 云帐户的一部分进行安装。请参见在 vRealize Automation 中创建 vCenter 云帐户。
- Tanzu 必须在 vSphere 云帐户上启用,并且必须包含相应的主管命名空间。
- 您的 vCenter 和 vRealize Automation 部署应对要同步的用户使用相同的 Active Directory。尽管这种情况并非如此时置备仍会起作用,但 vRealize Automation 用户将无法自动访问命名空间。
过程
下一步做什么
配置命名空间后,Cloud Assembly 中适用用户的 页面将显示该命名空间。用户可以单击“摘要”选项卡上的“地址”链接,打开 vSphere Kubernetes CLI 工具以管理命名空间。用户必须是云管理员或指定项目的命名空间的成员才能访问主管命名空间详细信息的链接。此外,用户还可以下载自定义 Kubectl 以使用主管命名空间。用户可以登录到主管命名空间,并像使用任何其他命名空间一样使用该命名空间,然后创建云模板并部署应用程序。
要将命名空间添加到云模板,请选择
,然后选择现有云模板或创建新云模板。之后,可以在左侧菜单中选择“主管命名空间”项,并将其拖动到画布上。可以使用标记将存储策略分配给主管命名空间。可以添加标记(如 location:local
,以指定要用于部署的 kubernetes 区域),还可以在存储配置文件上添加其他标记,例如 speed:fast
和 speed:slow
。
formatVersion: 1 resources: Cloud_SV_Namespace_1: type: Cloud.SV.Namespace properties: name: 'a' storage: -profile: constraints: - tag: 'speed:fast' -profile: liimitMB:1000 constraints: -tag: 'speed:slow'
此云模板请求没有限制的主管命名空间,并对其指定了两个存储配置文件。
部署包含主管命名空间的云模板后,用户也可以从 Service Broker 目录请求主管命名空间。此外,还可以在 Cloud Assembly 中单击“部署”页面,查看有关部署的信息以及访问包含对 vSphere 上的命名空间运行 kubectl 的命令的链接。
vmclasses
属性(用于指定类名称)为云模板中的主管命名空间指定虚拟机类。请参见以下云模板示例。
resources: Cloud_SV_Namespace_1: type: Cloud.SV.Namespace properties: name: demo-vmclass1 vmclasses: - name: vmclass1