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 端,虚拟机类显示为 VirtualMachineClass 和 VirtualMachineClassBinding 资源。
- 虚拟机映像
-
虚拟机映像是一个包含软件配置(包括操作系统、应用程序和数据)的模板。
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 | 创建虚拟机。 |
|