vSphere with Tanzu 提供虚拟机服务功能,因此,除了容器,DevOps 工程师还可以在通用的共享 Kubernetes 环境中部署并运行虚拟机。可以使用虚拟机服务管理 vSphere 命名空间 中的虚拟机的生命周期。虚拟机服务可以管理独立虚拟机和构成 Tanzu Kubernetes 集群的虚拟机。

通常,业务需求和目标决定了在虚拟机而非容器中运行工作负载。有关何时运行虚拟机的信息,请参见在 vSphere with Tanzu 中使用虚拟机

虚拟机服务的概念

要描述要在 vSphere 命名空间 中部署的虚拟机的状态,可以使用诸如虚拟机类、虚拟机映像和存储类等参数。然后,虚拟机服务将这些规范汇集在一起,创建独立集群或支持 Tanzu Kubernetes 集群的虚拟机。

虚拟机规范将虚拟机类、虚拟机映像和存储类汇集在一起以创建虚拟机
VM 服务
虚拟机服务是 vSphere with Tanzu 的一个组件,可提供声明式 Kubernetes 式 API,用于管理虚拟机和关联的 vSphere 资源。虚拟机服务使 vSphere 管理员可以交付资源,并为 Kubernetes 提供虚拟机类和虚拟机映像等模板。DevOps 工程师可以使用这些资源描述虚拟机的所需状态。DevOps 工程师指定虚拟机状态后,虚拟机服务会依据备用基础架构资源将所需状态转换为实际状态。

对于通过虚拟机服务创建的虚拟机,只能从 Kubernetes 命名空间使用 kubectl 命令进行管理。vSphere 管理员无法从 vSphere Client 管理虚拟机,但可以显示其详细信息并监控其使用的资源。有关信息,请参见监控 vSphere with Tanzu 中可用的虚拟机

VM 类
虚拟机类是虚拟机规范,可用于为虚拟机请求一组资源。虚拟机类由 vSphere 管理员控制和管理,并可定义虚拟 CPU 数量、内存容量和预留设置等参数。定义的参数由主管集群的底层基础架构资源提供支持和保证。

vSphere 管理员可以创建自定义虚拟机类。

此外,工作负载管理提供了几个默认虚拟机类。通常,每个默认类的类型都有两个版本:保证和最大努力。保证版本会完全预留虚拟机规范请求的资源。最大努力类版本则不然,它允许超额分配资源。通常,在生产环境中使用保证类型。

默认虚拟机类的示例如下所示。

CPU 内存 (GB) 预留的 CPU 和内存
guaranteed-large 4 16
best-effort-large 4 16
guaranteed-small 2 4
best-effort-small 2 4

vSphere 管理员可以分配任意数目的现有虚拟机类,使其可用于特定命名空间内的 DevOps 工程师。

虚拟机类为 DevOps 工程师提供了简化的体验。DevOps 不需要了解他们计划创建的每个虚拟机的完整配置。他们可以从可用选项中选择虚拟机类,并且由虚拟机服务管理虚拟机配置。

在 Kubernetes 端,虚拟机类显示为 VirtualMachineClassVirtualMachineClassBinding 资源。

虚拟机映像
虚拟机映像是一个包含软件配置(包括操作系统、应用程序和数据)的模板。

DevOps 工程师创建虚拟机时,可以从与命名空间关联的内容库中选择映像。对于 DevOps,映像将公开为 VirtualMachineImage 对象。

虚拟机服务支持数量有限的虚拟机映像和客户机操作系统。兼容的虚拟机映像在 VMware Marketplace 中显示为 OVF。确保仅使用虚拟机服务支持的虚拟机映像。要查找兼容的映像,请在 VMware Cloud Marketplace 网站上搜索虚拟机服务映像。请参见适用于 CentOS 的虚拟机服务映像中适用于 CentOS 的虚拟机服务映像示例。

内容源
DevOps 工程师使用内容库作为映像源来创建虚拟机。与虚拟机类类似,vSphere 管理员可以将现有内容库分配给命名空间,使其可供 DevOps 工程师使用。
存储类
虚拟机服务使用存储类来放置虚拟磁盘和动态附加持久卷。有关存储类的详细信息,请参见 在 vSphere with Tanzu 中使用持久存储
虚拟机规范
DevOps 工程师在 YAML 文件中描述了虚拟机的所需状态,此状态汇集了虚拟机映像、虚拟机类和存储类。
网络
虚拟机服务没有任何特定要求,它依赖于 vSphere with Tanzu 中提供的网络。虚拟机服务支持两种类型的网络,即 vSphere 网络和 NSX-T。部署虚拟机时,可用网络提供程序会为虚拟机分配静态 IP 地址。有关信息,请参见 vSphere with Tanzu 的网络连接

vSphere 管理员置备虚拟机的工作流

作为 vSphere 管理员,您可以为虚拟机的策略和监管设置门槛,以及向 DevOps 工程师提供虚拟机资源(如虚拟机类和虚拟机模板)。部署虚拟机后,可以使用 vSphere Client 来监控虚拟机。

步骤 描述 说明
1 创建和管理虚拟机类。
2 将一组虚拟机类与命名空间相关联。 将虚拟机类与 vSphere with Tanzu 中的命名空间关联
3 创建和管理内容库。
4 将内容库与命名空间相关联。
5 将存储类与命名空间关联。 创建和配置 vSphere 命名空间
6 监控部署的虚拟机。 监控 vSphere with Tanzu 中可用的虚拟机

DevOps 工程师置备虚拟机的工作流

具有权限的 DevOps 工程师可以检查可用的虚拟机资源,以及将虚拟机部署到命名空间中。可以使用 kubectl 命令执行以下任务。

步骤 描述 说明
1 列出与命名空间关联的虚拟机类、映像和其他资源。 查看 vSphere with Tanzu 中命名空间里的可用虚拟机资源
2 创建虚拟机。