vmClone资源
先决条件¶
snapshot 和 restore¶
从底层方面看,clone API 依赖于snapshot和restore API。 因此,为了能够使用clone API,请参阅snapshot和restore先决条件。
快照特性门控¶
目前,clone API 由snapshot特性门控保护。 KubeVirt CR 中的feature gates字段必须通过添加快照来扩展。
Clone 对象¶
首先,如上所述,clone API 依赖于底层的snapshot和restore API。 因此,查看snapshot和restore用户指南页面以获取更多信息可能会有所帮助。
vmClone 对象概述¶
为了启动克隆,需要在集群上创建 VirtualMachineClone 对象 (CRD)。 这种对象的一个例子是:
vmClone例子
source 和 target¶
source和target表示source/target API 组、种类和名称。 一些重要的注意事项:
-
目前,唯一支持的类型是
VirtualMachine(属于kubevirt.ioapi 组)和VirtualMachineSnapshot(属于snapshot.kubevirt.ioapi 组),但预计将来会支持更多类型。 有关详细信息,请参阅下面的“未来路线图”。 -
target名称是可选的。 如果未指定,克隆控制器将自动为target生成名称。 -
target和source必须位于同一命名空间中。
label 和 annotation filters¶
这些规范字段旨在确定哪些label/annotations被复制到目标或被剥离。
过滤器是字符串列表。 每个字符串代表源中可能存在的一个键。 与这些值之一匹配的每个源密钥都将被复制到克隆的目标。 此外,还可以使用特殊的类似正则表达式的字符:
- 通配符
(*)可用于匹配任何内容。 通配符只能用在过滤器的末尾。 - 这些过滤器有效:
"*""some/key*"
- 这些过滤器无效:
"some/*/key""*/key"
- 否定字符
(!)可用于避免匹配某些键。 否定只能用在过滤器的开头。 请注意,否定和通配符可以一起使用。 - 这些过滤器有效:
"!some/key""!some/*"
- 这些过滤器无效:
"key!""some/!key"
设置label/annotation过滤器是可选的。 如果未设置,则默认复制所有label/annotations。
newMacAddresses¶
该字段用于显式替换某些接口的 MAC 地址。 该字段是字符串到字符串的映射; 键代表接口名称,值代表克隆目标的新 MAC 地址。
该字段是可选的。 默认情况下,所有 MAC 地址都会被删除。 这适合在集群中部署 kube-mac-pool 时的情况,该集群会自动为目标分配新的有效 MAC 地址。
newSMBiosSerial¶
该字段用于显式设置目标的 SMBios 串行。
该字段是可选的。 默认情况下,目标将具有基于虚拟机名称自动生成的序列号。
创建 vmClone 对象¶
clone清单准备好后,我们可以创建它:
要等待clone完成,请执行:
您可以在clone状态中检查clone的阶段。 它可以是以下之一:
ProgressingSucceeded
clone完成后,可以检查target:
创建日期: 2023-08-10