VirtualMachine
Scope: Namespaced
Version: v1alpha2
Ресурс, описывающий конфигурацию и статус виртуальной машины (ВМ). На запущенной ВМ изменённые параметры применятся только после перезагрузки, за исключением следующих параметров, которые применяются «на лету»:
.metadata.labels
;.metadata.annotations
;.spec.disruptions.restartApprovalMode
..spec.runPolicy
.
- spec
Обязательный параметр
- spec.affinity
По аналогии, как и в параметре подов
spec.affinity
в Kubernetes.Настройка
affinity
полностью аналогична приведённой выше документации, за исключением названий некоторых параметров. Используются следующие аналоги:podAffinity
->virtualMachineAndPodAffinity
;podAffinityTerm
->virtualMachineAndPodAffinityTerm
.
- spec.affinity.nodeAffinity
Описывает affinity-правила узлов для ВМ.
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
Обязательный параметр
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.key
Обязательный параметр
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator
Обязательный параметр
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
- Элемент массива
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.key
Обязательный параметр
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator
Обязательный параметр
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
- Элемент массива
- spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Обязательный параметр
Допустимые значения:
1 <= X <= 100
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
Обязательный параметр
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key
Обязательный параметр
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
Обязательный параметр
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
- Элемент массива
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key
Обязательный параметр
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
Обязательный параметр
- spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity
Описывает affinity-правила подов и ВМ.
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
Обязательный параметр
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
Обязательный параметр
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
Обязательный параметр
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
Обязательный параметр
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
Обязательный параметр
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
Обязательный параметр
- spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Обязательный параметр
Допустимые значения:
1 <= X <= 100
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
Обязательный параметр
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
Обязательный параметр
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
Обязательный параметр
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
Обязательный параметр
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
- Элемент массива
- spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity
Описывает anti-affinity-правила пода и ВМ.
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
- Элемент массива
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
- Элемент массива
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
- Элемент массива
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
- Элемент массива
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
- Элемент массива
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Обязательный параметр
Допустимые значения:
1 <= X <= 100
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
- Элемент массива
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
- Элемент массива
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
- Элемент массива
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
Обязательный параметр
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
- Элемент массива
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
- Элемент массива
- spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
Обязательный параметр
- spec.blockDeviceRefs
Обязательный параметр
Список блочных устройств, которые могут быть смонтированы в ВМ.
Порядок загрузки определяется порядком в списке.
Ссылка на блочное устройство.
- spec.blockDeviceRefs.kind
Поддерживаемые типы устройств:
ClusterVirtualImage
— использовать ClusterVirtualImage в качестве диска. Данный тип всегда монтируется в режиме для чтения (ReadOnly
). ISO-образ будет смонтирован как устройство CD-ROM;VirtualImage
— использовать VirtualImage в качестве диска. Данный тип всегда монтируется в режиме для чтения (ReadOnly
). ISO-образ будет смонтирован как устройство CD-ROM;VirtualDisk
— использовать VirtualDisk в качестве диска. Данный тип всегда монтируется в режиме для чтения и записи (ReadWrite
).
Допустимые значения:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
- spec.blockDeviceRefs.name
Имя ресурса заданного типа.
- spec.bootloader
Загрузчик для ВМ:
BIOS
— использовать BIOS;EFI
— использовать Unified Extensible Firmware (EFI/UEFI);EFIWithSecureBoot
— использовать UEFI/EFI с поддержкой функции Secure Boot.
По умолчанию:
"BIOS"
Допустимые значения:
BIOS
,EFI
,EFIWithSecureBoot
- spec.cpu
Обязательный параметр
Блок определяет настройки CPU для виртуальной машины.
- spec.cpu.coreFraction
Гарантированная доля времени CPU, которая будет выделена ВМ. Указывается в процентах.
По умолчанию:
"100%"
- spec.cpu.cores
Обязательный параметр
Количество ядер.
Допустимые значения:
1 <= X
- spec.disruptions
Описание политики применения изменений, требующих перезагрузки ВМ.
Для применения изменений в некоторых параметрах конфигурации ВМ потребуется перезагрузка. Данная политика позволяет задать поведение, определяющее как ВМ будет реагировать на такие изменения.
По умолчанию:
{"restartApprovalMode":"Manual"}
- spec.disruptions.restartApprovalMode
Режим одобрения для изменений, требующих перезагрузки ВМ:
Manual
— изменения не будут применены до тех пор, пока пользователь самостоятельно не осуществит перезагрузку ВМ;Automatic
— ВМ будет перезагружена сразу после сохранения параметров, требующих перезагрузки.
Допустимые значения:
Manual
,Automatic
- spec.enableParavirtualization
Использовать шину
virtio
для подключения виртуальных устройств ВМ. Чтобы отключитьvirtio
для ВМ, установите значениеFalse
.Внимание: Для использования режима паравиртуализации некоторые ОС требуют установки соответствующих драйверов.
По умолчанию:
true
- spec.memory
Обязательный параметр
Блок настроек оперативной памяти для виртуальной машины.
- spec.memory.size
Обязательный параметр
Объём оперативной памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- spec.osType
Параметр позволяет выбрать тип используемой ОС, для которой будет создана ВМ с оптимальным набором необходимых виртуальных устройств и параметров.
Windows
— для ОС семейства Microsoft Windows;Generic
— для других типов ОС.
По умолчанию:
"Generic"
Допустимые значения:
Windows
,Generic
- spec.provisioning
Блок описания сценария начальной инициализации ВМ.
- spec.provisioning.sysprepRef
Ссылка на существующий ресурс со сценарием автоматизации Windows.
Структура ресурса для типа
SysprepRef
:.data.autounattend.xml
;.data.unattend.xml
.
- spec.provisioning.sysprepRef.kind
Обязательный параметр
Тип ресурса. Используйте секрет с типом
provisioning.virtualization.deckhouse.io/sysprep
.По умолчанию:
"Secret"
Допустимые значения:
Secret
- spec.provisioning.sysprepRef.name
Обязательный параметр
Имя ресурса со сценарием автоматизации.
- spec.provisioning.type
Поддерживаемые параметры для использования сценария инициализации:
UserData
— использовать сценарийcloud-init
в секции.spec.provisioning.UserData
;UserDataRef
— использовать сценарийcloud-init
, который находится в другом ресурсе;SysprepRef
— использовать сценарий автоматизации установки Windows, который находится в другом ресурсе.
Допустимые значения:
UserData
,UserDataRef
,SysprepRef
- spec.provisioning.userData
Текст сценария
cloud-init
.Дополнительная информация о
cloud-init
и примеры конфигурации. - spec.provisioning.userDataRef
Ссылка на существующий ресурс со сценарием
cloud-init
.Структура ресурса для типа
userDataRef
:.data.userData
.
- spec.provisioning.userDataRef.kind
Обязательный параметр
Тип ресурса.
По умолчанию:
"Secret"
Допустимые значения:
Secret
- spec.provisioning.userDataRef.name
Обязательный параметр
Имя ресурса со сценарием
cloud-init
.
- spec.runPolicy
Параметр определяет политику запуска ВМ:
AlwaysOn
— после создания ВМ всегда находится в работающем состоянии, даже в случае отключения средствами ОС;AlwaysOff
— после создания ВМ всегда находится в выключенном состоянии;Manual
— после создания ВМ выключается. Включение и выключение ВМ контролируется через API-сервисы или средства ОС;AlwaysOnUnlessStoppedManually
— после создания ВМ всегда находится в работающем состоянии. ВМ можно выключить средствами ОС или воспользоваться командой для утилиты d8:d8 v stop <vm_name>
.
По умолчанию:
"AlwaysOnUnlessStoppedManually"
Допустимые значения:
AlwaysOn
,AlwaysOff
,Manual
,AlwaysOnUnlessStoppedManually
- spec.terminationGracePeriodSeconds
Период ожидания после подачи сигнала о прекращении работы ВМ (
SIGTERM
), по истечении которого работа ВМ принудительно завершается.По умолчанию:
60
- spec.tolerations.effect
- spec.tolerations.key
- spec.tolerations.operator
- spec.tolerations.tolerationSeconds
- spec.tolerations.value
- spec.topologySpreadConstraints
По аналогии с параметром подов
spec.topologySpreadConstraints
в Kubernetes.- spec.topologySpreadConstraints.labelSelector
- spec.topologySpreadConstraints.labelSelector.matchExpressions
- spec.topologySpreadConstraints.labelSelector.matchExpressions.key
Обязательный параметр
- spec.topologySpreadConstraints.labelSelector.matchExpressions.operator
Обязательный параметр
- spec.topologySpreadConstraints.labelSelector.matchExpressions.values
- Элемент массива
- spec.topologySpreadConstraints.labelSelector.matchLabels
- spec.topologySpreadConstraints.maxSkew
Обязательный параметр
- spec.topologySpreadConstraints.topologyKey
Обязательный параметр
- spec.topologySpreadConstraints.whenUnsatisfiable
Обязательный параметр
- spec.virtualMachineClassName
Обязательный параметр
Имя ресурса VirtualMachineClass, который описывает требования к виртуальному CPU и памяти, а также политику размещения ресурсов.
- spec.virtualMachineIPAddressName
Имя для связанного ресурса virtualMachineIPAddress.
Указывается при необходимости использования ранее созданного IP-адреса ВМ.
Если не указано явно, по умолчанию для ВМ создаётся ресурс virtualMachineIPAddress с именем, аналогичным ресурсу ВМ (
.metadata.name
).