Функциональность модуля может измениться, но основные возможности сохранятся. Совместимость с будущими версиями обеспечивается, но может потребовать дополнительных действий по миграции.
ClusterVirtualImage
Scope: Cluster
Version: v1alpha2
Описывает образ диска виртуальной машины, который может использоваться в качестве источника данных для новых VirtualDisks
или установочный образ (iso), который быть смонтирован в VirtualMachines
напрямую. Этот тип ресурса доступен для всех пространств имен в кластере.
Этот ресурс не может быть изменен после его создания.
Под капотом этого ресурса создается образ контейнера, который хранится в специальном container registry (DVCR).
-
spec
-
spec.dataSource
Обязательный параметр
Тип источника, из которого будет создан образ.-
spec.dataSource.containerImageИспользование образа, хранящегося во внешнем реестре контейнеров. Поддерживаются только реестры контейнеров с включенным TLS. При необходимости используйте поле caBundle, чтобы предоставить собственную цепочку центров сертификации.
-
spec.dataSource.containerImage.caBundleЦепочка сертификатов в формате Base64 для проверки подключения к container registry.
Пример:
caBundle: | YWFhCg==
-
spec.dataSource.containerImage.image
Обязательный параметр
Путь к образу в container registry.Шаблон:
^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$
Пример:
image: registry.example.com/images/slackware:15
-
spec.dataSource.containerImage.imagePullSecret
-
spec.dataSource.containerImage.imagePullSecret.nameИмя Secret’а, содержащего учетные данные для подключения к container registry.
-
spec.dataSource.containerImage.imagePullSecret.namespaceПространство имен, в котором находится imagePullSecret.
-
-
-
spec.dataSource.http
Создание образа из файла, опубликованного по URL. Поддерживаемые схемы:
- HTTP;
- HTTPS.
Для схемы HTTPS есть возможность отключить проверку TLS.
-
spec.dataSource.http.caBundleЦепочка сертификатов в формате Base64 для проверки TLS-сертификата сервера, на котором размещается образ.
Пример:
caBundle: | YWFhCg==
-
spec.dataSource.http.checksumКонтрольная сумма файла для проверки правильности загрузки или отсутствия изменений. Файл должен соответствовать всем указанным контрольным суммам.
-
spec.dataSource.http.checksum.md5
Длина:
32..32
Шаблон:
^[0-9a-fA-F]{32}$
Пример:
md5: f3b59bed9f91e32fac1210184fcff6f5
-
spec.dataSource.http.checksum.sha256
Длина:
64..64
Шаблон:
^[0-9a-fA-F]{64}$
Пример:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
spec.dataSource.http.url
Обязательный параметр
Для образа расположенного по URL, поддерживаются следующие типы образов:
- qcow2;
- vmdk;
- vdi;
- iso;
- raw.
Для всех представленных типов образов поддерживается сжатие образов в следующих форматах:
- gz;
- xz.
Шаблон:
^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$
Пример:
url: https://mirror.example.com/images/slackware-15.qcow.gz
-
spec.dataSource.objectRefДля создания образа использовать существующий
VirtualImage
,ClusterVirtualImage
илиVirtualDisk
.-
spec.dataSource.objectRef.kind
Обязательный параметр
Ссылка на существующийVirtualImage
,ClusterVirtualImage
илиVirtualDisk
.Допустимые значения:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
-
spec.dataSource.objectRef.name
Обязательный параметр
Имя существующегоVirtualImage
,ClusterVirtualImage
илиVirtualDisk
. -
spec.dataSource.objectRef.namespaceИмя namespace’а, гда ресположен
VirtualImage
илиVirtualDisk
.
-
-
spec.dataSource.type
Обязательный параметр
Доступные типы источников для создания образа:
HTTP
— создать диск из файла, опубликованного на HTTP/HTTPS-сервере.ContainerImage
— создать диск из образа в container registry.ObjectRef
— создать диск из существующего ресурса.Upload
— загрузить образ диска вручную.
Допустимые значения:
HTTP
,ContainerImage
,ObjectRef
,Upload
-
-
VirtualDisk
Scope: Namespaced
Version: v1alpha2
Ресурс VirtualDisk
описывает желаемую конфигурацию диска виртуальной машины. VirtualDisk
может быть смонтирован в виртуальной машине статически, указав его в списке дисков .spec.blockDeviceRefs
, или смонтирован «на лету» с помощью ресурса VirtualMachineBlockDeviceAttachments
.
После создания VirtualDisk
можно изменить только размер диска .spec.persistentVolumeClaim.size
, все остальные поля неизменяемы.
-
spec
-
spec.dataSourceТип источника, из которого будет создан диск. Если источник (.spec.dataSource) отсутствует, то будет создан пустой диск.
-
spec.dataSource.containerImageДля использования образа, хранящегося во внешнем реестре контейнеров, необходимо убедиться, что используется реестр, работающий по протоколу TLS. При необходимости предоставьте поле caBundle для передачи цепочки сертификатов.
-
spec.dataSource.containerImage.caBundleЦепочка сертификатов в формате Base64 для проверки подключения к container registry.
Пример:
caBundle: | YWFhCg==
-
spec.dataSource.containerImage.image
Обязательный параметр
Путь к образу в container registry.Шаблон:
^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$
Пример:
image: registry.example.com/images/slackware:15
-
spec.dataSource.containerImage.imagePullSecret
-
spec.dataSource.containerImage.imagePullSecret.nameИмя Secret’а, содержащего учетные данные для подключения к container registry.
-
-
-
spec.dataSource.http
Создать диск из файла, опубликованного по URL. Поддерживаемые схемы:
- HTTP;
- HTTPS.
Для схемы HTTPS есть возможность пропустить проверку TLS.
-
spec.dataSource.http.caBundleЦепочка сертификатов в формате Base64 для проверки TLS-сертификата сервера, на котором размещается образ.
Пример:
caBundle: | YWFhCg==
-
spec.dataSource.http.checksumКонтрольная сумма файла для проверки правильности загрузки или отсутствия изменений. Файл должен соответствовать всем указанным контрольным суммам.
-
spec.dataSource.http.checksum.md5
Длина:
32..32
Шаблон:
^[0-9a-fA-F]{32}$
Пример:
md5: f3b59bed9f91e32fac1210184fcff6f5
-
spec.dataSource.http.checksum.sha256
Длина:
64..64
Шаблон:
^[0-9a-fA-F]{64}$
Пример:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
spec.dataSource.http.url
Обязательный параметр
URL с образом. Поддерживаются следующие типы образов:
- qcow2;
- vmdk;
- vdi;
- iso;
- raw.
Для всех представленных типов образов поддерживается сжатие образов в следующих форматах:
- gz;
- xz.
Шаблон:
^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$
Пример:
url: https://mirror.example.com/images/slackware-15.qcow.gz
-
spec.dataSource.objectRefДля создания образа использовать существующий
VirtualImage
,ClusterVirtualImage
илиVirtualDiskSnapshot
.-
spec.dataSource.objectRef.kind
Обязательный параметр
Ссылка на существующийVirtualImage
,ClusterVirtualImage
илиVirtualDiskSnapshot
.Допустимые значения:
VirtualImage
,ClusterVirtualImage
,VirtualDiskSnapshot
-
spec.dataSource.objectRef.name
Обязательный параметр
Имя существующегоVirtualImage
,ClusterVirtualImage
илиVirtualDiskSnapshot
.
-
-
spec.dataSource.type
Обязательный параметр
Тип источника, из которого будет создан диск:
HTTP
— создать диск из файла, опубликованного на HTTP/HTTPS-сервере.ContainerImage
— создать диск из образа в container registry.ObjectRef
— создать диск из существующего ресурса.Upload
— загрузить образ диска вручную.
Допустимые значения:
HTTP
,ContainerImage
,ObjectRef
,Upload
-
-
spec.persistentVolumeClaimНастройки для создания PVC для хранения диска.
-
spec.persistentVolumeClaim.size
Желаемый размер PVC для хранения диска. Если диск создается из образа, то размер должен быть не меньше, чем исходный образ в распакованном состоянии.
Данный параметр можно опустить, если задан блок
.spec.dataSource
, в этом случае контроллер определит размер диска автоматически, на основе размера распакованного образа из источника указанного в.spec.dataSource
.Шаблон:
^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
-
spec.persistentVolumeClaim.storageClassName
Имя StorageClass, требуемого для PersistentVolumeClaim. Дополнительная информация — https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.
При создании дисков пользователь может указать требуемый StorageClass для создания диска, либо не указывать явно и в этом случае будет использован StorageClass доступный по умолчанию.
Особенности диска и поведение виртуальной машины зависят от выбранного StorageClass.
Параметр
VolumeBindingMode
в StorageClass влияет на процесс создания дисков:Immediate
- Диск будет создан и доступен для использования сразу после создания.WaitForFirstConsumer
- Диск создается только при его использовании в виртуальной машине. При этом диск будет создан на узле, где будет запущена виртуальная машина.
StorageClass может поддерживать различные настройки хранения:
- Создание блочного устройства (
Block
) или файловой системы (FileSystem
). - Множественный доступ (
ReadWriteMany
) или единичный доступ (ReadWriteOnce
).ReadWriteMany
-диски поддерживают множественный доступ, что позволяет выполнять живую миграцию виртуальных машин. В отличие от них,ReadWriteOnce
-диски, ограниченные доступом только с одного узла, не могут обеспечить такую возможность.
Для известных типов хранилищ платформа самостоятельно определит наиболее эффективные настройки при создании дисков (в порядке убывания приоритетов):
Block
+ReadWriteMany
FileSystem
+ReadWriteMany
Block
+ReadWriteOnce
FileSystem
+ReadWriteOnce
-
-
VirtualDiskSnapshot
Scope: Namespaced
Version: v1alpha2
Предоставляет ресурс для создания снимков существующих виртуальных дисков, которые могут быть использованы в качестве источников данных для создания новых виртуальных дисков.
В процессе выполнения автоматически создается ресурс VolumeSnapshot
.
-
spec
-
spec.requiredConsistency
Создавать снимок диска подключённой виртуальной машины только в том случае, если возможно заморозить её через агента.
Если значение установлено в true, снимок виртуального диска будет создан, если выполняется хотя бы одно из следующих правил:
- виртуальный диск не подключен ни к одной виртуальной машине;
- виртуальный диск подключен к виртуальной машине, которая выключена;
- виртуальный диск подключен к виртуальной машине с агентом, и операция заморозки прошла успешно.
По умолчанию:
true
-
spec.virtualDiskName
Обязательный параметр
Имя виртуального диска, для которого будет создан снимок. -
spec.volumeSnapshotClassName
Обязательный параметр
Имя класса снимков томов, который будет использоваться при создании снимка виртуального диска.
-
VirtualImage
Scope: Namespaced
Version: v1alpha2
Описывает образ диска виртуальной машины, который может использоваться в качестве источника данных для новых VirtualDisks
или установочный образ (iso), который быть смонтирован в VirtualMachines
напрямую.
Этот ресурс не может быть изменен после его создания.
Под капотом этого ресурса создается образ контейнера, хранящийся в специальном container registry (DVCR).
-
spec
-
spec.dataSource
Обязательный параметр
Тип источника, из которого будет создан образ.-
spec.dataSource.containerImageДля использования образа, хранящегося во внешнем реестре контейнеров, необходимо убедиться, что используется реестр, работающий по протоколу TLS. При необходимости предоставьте поле caBundle для передачи цепочки сертификатов.
-
spec.dataSource.containerImage.caBundleЦепочка сертификатов в формате Base64 для проверки подключения к container registry.
Пример:
caBundle: | YWFhCg==
-
spec.dataSource.containerImage.image
Обязательный параметр
Путь к образу в container registry.Шаблон:
^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$
Пример:
image: registry.example.com/images/slackware:15
-
spec.dataSource.containerImage.imagePullSecret
-
spec.dataSource.containerImage.imagePullSecret.nameИмя Secret’а, содержащего учетные данные для подключения к container registry.
-
-
-
spec.dataSource.http
Создать образ из файла, опубликованного по URL. Поддерживаемые схемы:
- HTTP;
- HTTPS.
Для схемы HTTPS есть возможность пропустить проверку TLS.
-
spec.dataSource.http.caBundleЦепочка сертификатов в формате Base64 для проверки TLS-сертификата сервера, на котором размещается образ.
Пример:
caBundle: | YWFhCg==
-
spec.dataSource.http.checksumКонтрольная сумма файла для проверки правильности загрузки или отсутствия изменений. Файл должен соответствовать всем указанным контрольным суммам.
-
spec.dataSource.http.checksum.md5
Длина:
32..32
Шаблон:
^[0-9a-fA-F]{32}$
Пример:
md5: f3b59bed9f91e32fac1210184fcff6f5
-
spec.dataSource.http.checksum.sha256
Длина:
64..64
Шаблон:
^[0-9a-fA-F]{64}$
Пример:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
spec.dataSource.http.url
Обязательный параметр
URL с образом. Поддерживаются следующие типы образов:
- qcow2;
- vmdk;
- vdi;
- iso;
- raw.
Для всех представленных типов образов поддерживается сжатие образов в следующих форматах:
- gz;
- xz.
Шаблон:
^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$
Пример:
url: https://mirror.example.com/images/slackware-15.qcow.gz
-
spec.dataSource.objectRefДля создания образа использовать существующий
VirtualImage
,ClusterVirtualImage
илиVirtualDisk
.-
spec.dataSource.objectRef.kind
Обязательный параметр
Ссылка на существующийVirtualImage
,ClusterVirtualImage
илиVirtualDisk
.Допустимые значения:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
-
spec.dataSource.objectRef.name
Обязательный параметр
Имя существующегоVirtualImage
,ClusterVirtualImage
илиVirtualDisk
.
-
-
spec.dataSource.type
Обязательный параметр
Тип источника, из которого будет создан образ:
HTTP
— создать диск из файла, опубликованного на HTTP/HTTPS-сервере.ContainerImage
— создать диск из образа в container registry.ObjectRef
— создать диск из существующего ресурса.Upload
— загрузить образ диска вручную.
Допустимые значения:
HTTP
,ContainerImage
,ObjectRef
,Upload
-
-
spec.storage
Обязательный параметр
Тип хранилища для хранения образа:
ContainerRegistry
— использовать container registry (DVCR). В этом случае образы будут загружаться в контейнер, а затем в DVCR (поставляется с модулем виртуализации).Kubernetes
- использовать Persistent Volume Claim (PVC).
По умолчанию:
ContainerRegistry
Допустимые значения:
ContainerRegistry
,Kubernetes
-
VirtualMachineBlockDeviceAttachment
Scope: Namespaced
Version: v1alpha2
-
apiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
spec
-
spec.blockDeviceRef
Обязательный параметр
Блочное устройство, которое будет подключено к ВМ в качестве диска hotPlug.-
spec.blockDeviceRef.kind
Тип блочного устройства. Возможны следующие варианты:
VirtualDisk
— использоватьVirtualDisk
в качестве диска. Этот тип всегда монтируется в режиме RW.
Допустимые значения:
VirtualDisk
-
spec.blockDeviceRef.nameИмя блочного устройства
-
-
spec.virtualMachineName
Обязательный параметр
Имя виртуальной машины, к которой подключен диск.
-
VirtualMachineClass
Scope: Cluster
Version: v1alpha2
Данный ресурс описывает:
- требования к виртуальному CPU
- требования размещения ВМ на узлах
- политику определения размера ресурсов ВМ.
Этот ресурс не может быть удален, пока он используется в одной из ВМ.
-
apiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
spec
-
spec.cpu
Обязательный параметр
Блок описания требований к виртуальному CPU.-
spec.cpu.discovery
Создать универсальную модель виртуального CPU на основе наборов инструкций, которые поддерживаются на всех физических CPU узлов выборки.
Допустим, у нас есть выборка из трех узлов, где на каждом узле есть физические CPU с различными наборами инструкций. Набор инструкций физического CPU узла 1: [f1, f2, f3, f4], для узла 2: [f1, f2], и для узла 3: [f1, f2, f3]. Для создания универсальной модели CPU для этой выборки узлов, необходимо объединить общие инструкции, присущие всем узлам, то есть [f1, f2]. В результате мы получим виртуальный CPU с набором инструкций [f1, f2]
-
spec.cpu.discovery.nodeSelectorВыборка узлов, на основе которой будет создана универсальная модель CPU.
-
spec.cpu.discovery.nodeSelector.matchExpressionsСписок селекторов лейблов. Требования селекторов объединяются. Т.е. должны выполнятся все условия списка. Под лейблом понимается пара:
ключ = значение
.-
spec.cpu.discovery.nodeSelector.matchExpressions.keyНазвание ключа лейбла, к которому применятся селектор.
-
spec.cpu.discovery.nodeSelector.matchExpressions.operatorОператор определяет отношение ключа лейбла к набору его значений. Допустимые операторы:
In
,NotIn
,Exists
иDoesNotExist
:In
- значение ключа лейбла входит в заданный список лейбловvalues
.NotIn
- значение ключа лейбла не входит в заданный список лейбловvalues
.Exist
- ключ лейбла существует.DoesNotExist
- ключа лейбла не существует. -
spec.cpu.discovery.nodeSelector.matchExpressions.valuesСтроковый список значений. Если оператор
In
илиNotIn
, список значений должен быть непустым. Если операторExists
илиDoesNotExist
, список значений должен быть пустым.
-
-
spec.cpu.discovery.nodeSelector.matchLabels
Карта пар
ключ=значение
. Одинключ=значение
для matchLabels эквивалентен элементу matchExpressions, ключевым полем которого является «ключ», оператором - «In», а список значений содержит только «значение».Для выборки по данному критерию все значения логически суммируются.
-
-
-
spec.cpu.featuresНеобходимые инструкции для процессора в виде списка Дополнительную информацию о поддерживаемых инструкциях можно найти здесь
Пример:
features: - mmx - vmx - sse2
-
spec.cpu.modelНазвание модели процессора. Дополнительная информация о моделях здесь
Минимальная длина:
1
Пример:
model: IvyBridge
-
spec.cpu.type
Обязательный параметр
В качестве типа ресурса, поддерживаются следующие варианты:
Host
- используется виртуальный CPU, максимально близкий к CPU узла платформы по набору инструкций. Это обеспечивает высокую производительность и функциональность, а также совместимость с живой миграцией для узлов с похожими типами процессоров. Например, миграция ВМ между узлами с процессорами Intel и AMD не будет работать. Это также справедливо для процессоров разных поколений, так как набор инструкций у них отличается.HostPassthrough
- используется физический CPU узла платформы напрямую без каких-либо изменений. При использовании данного класса гостевая ВМ может быть перенесена только на целевой узел, у которого CPU точно соответствует CPU исходного узла.Discovery
- создание виртуального CPU на основе наборов инструкций физических CPU для заданного набора узлов.Model
- модель процессора. Модель процессора - это именованный и предварительно определенный набор поддерживаемых инструкций процессора.Features
- необходимый набор поддерживаемых инструкций для процессора.
Допустимые значения:
Host
,HostPassthrough
,Discovery
,Model
,Features
-
-
spec.nodeSelectorСелектор узлов, на которые разрешено планировать ВМ для запуска.
-
spec.nodeSelector.matchExpressionsСписок селекторов лейблов. Требования селекторов объединяются. Т.е. должны выполнятся все условия списка. Под лейблом понимается пара:
ключ = значение
.-
spec.nodeSelector.matchExpressions.keyНазвание ключа лейбла, к которому применятся селектор.
-
spec.nodeSelector.matchExpressions.operatorОператор определяет отношение ключа лейбла к набору его значений. Допустимые операторы:
In
,NotIn
,Exists
иDoesNotExist
:In
- значение ключа лейбла входит в заданный список лейбловvalues
.NotIn
- значение ключа лейбла не входит в заданный список лейбловvalues
.Exist
- ключ лейбла существует.DoesNotExist
- ключа лейблане существует. -
spec.nodeSelector.matchExpressions.valuesСтроковый список значений. Если оператор
In
илиNotIn
, список значений должен быть непустым. Если операторExists
илиDoesNotExist
, список значений должен быть пустым.
-
-
spec.nodeSelector.matchLabels
Карта пар
ключ=значение
. Одинключ=значение
для matchLabels эквивалентен элементу matchExpressions, ключевым полем которого является «ключ», оператором - «In», а список значений содержит только «значение».Для выборки по данному критерию все значения логически суммируются.
-
-
spec.sizingPoliciesПолитика выделения вычислительных ресурсов ВМ. Представлена в виде списка. Диапазоны cores.min - cores.max для разных элементов списка не должны пересекаться.
-
spec.sizingPolicies.coreFractionsДопустимые значения параметра
coreFraction
.-
spec.sizingPolicies.coreFractions.Элемент массива
Допустимые значения:
1 <= X <= 100
-
-
spec.sizingPolicies.coresПолитика применяется для заданного диапазона числа ядер CPU.
-
spec.sizingPolicies.cores.max
Обязательный параметр
Максимальное число ядер CPU.Допустимые значения:
X <= 1024
Пример:
max: 10
-
spec.sizingPolicies.cores.min
Обязательный параметр
Минимальное число ядер CPU.Допустимые значения:
1 <= X
Пример:
min: 1
-
spec.sizingPolicies.cores.stepШаг увеличения числа ядер CPU.
Допустимые значения:
1 <= X
Пример:
step: 1
-
-
spec.sizingPolicies.dedicatedCoresДопустимые значения параметра
dedicatedCores
. -
spec.sizingPolicies.memoryПолитика определения размера памяти.
-
spec.sizingPolicies.memory.maxМаксимальный объем памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Пример:
max: 8Gi
-
spec.sizingPolicies.memory.minМинимальный объем памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Пример:
min: 1Gi
-
spec.sizingPolicies.memory.perCoreОбъем памяти на одно ядро процессора.
-
spec.sizingPolicies.memory.perCore.maxМаксимальный объем памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Пример:
max: 8Gi
-
spec.sizingPolicies.memory.perCore.minМинимальный объем памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Пример:
min: 1Gi
-
-
spec.sizingPolicies.memory.stepШаг увеличения объема памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Пример:
step: 512Mi
-
-
-
VirtualMachineIPAddress
Scope: Namespaced
Version: v1alpha2
-
apiVersion
-
kind
-
metadata
-
specНастройки
VirtualMachineIPAddress
.-
spec.staticIPЗапрашиваемый статический IP-адрес, который должен быть присвоен виртуальной машине. Это поле является обязательным, только если для параметра type задано значение “Static”.
-
spec.type
Обязательный параметр
Определяет режим присвоения IP-адреса. Возможные значения: “Auto” для автоматического присвоения IP-адреса или “Static” для присвоения определенного IP-адреса.Допустимые значения:
Auto
,Static
-
VirtualMachineIPAddressLease
Scope: Cluster
Version: v1alpha2
VirtualMachineIPAddress
.-
apiVersion
-
kind
-
metadata
-
specПараметры конфигурации
VirtualMachineIPAddressLease
.-
spec.virtualMachineIPAddressRefСсылка на существующие
VirtualMachineIPAddress
.-
spec.virtualMachineIPAddressRef.name
Обязательный параметр
Имя ссылающегосяVirtualMachineIPAddress
. -
spec.virtualMachineIPAddressRef.namespace
Обязательный параметр
Пространство имен ссылающегосяVirtualMachineIPAddress
.
-
-
VirtualMachineOperation
Scope: Namespaced
Version: v1alpha2
-
spec
-
spec.forceФорсирует выполнение операции. Применяется только для операций Restart и Stop. В этом случае действие над виртуальной машиной выполняется немедленно.
-
spec.type
Операции над виртуальной машиной:
- Start - запустить виртуальную машину.
- Stop - остановить виртуальную машину.
- Restart - перезапустить виртуальную машину.
Допустимые значения:
Start
,Stop
,Restart
-
spec.virtualMachineName
Обязательный параметр
Имя виртуальной машины, для которой выполняется операция.
-
VirtualMachine
Scope: Namespaced
Version: v1alpha2
Ресурс, описывающий конфигурацию и статус виртуальной машины (ВМ). Для запущенной ВМ изменение параметров может быть применено только после перезагрузки ВМ, за исключением следующих параметров (они применяются на лету):
.metadata.labels
.metadata.annotations
.spec.disruptions.restartApprovalMode
.spec.disruptions.runPolicy
-
spec
-
spec.affinity
По аналогии, как и в параметре pods
spec.affinity
в Kubernetes.Настройка Affinity полностью аналогична приведенной выше документации, разница лишь в названиях некоторых параметров. Фактически, используются следующие аналоги:
- podAffinity -> virtualMachineAndPodAffinity;
- podAffinityTerm -> virtualMachineAndPodAffinityTerm.
-
spec.affinity.nodeAffinityОписывает правила affiniy узлов для ВМ.
-
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.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.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.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.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values.Элемент массива
-
-
-
-
-
-
spec.affinity.virtualMachineAndPodAffinityОписывает правила affiniy подов и ВМ.
-
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.matchExpressions.values.Элемент массива
-
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Элемент массива
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
-
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.matchExpressions.values.Элемент массива
-
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
-
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.matchExpressions.values.Элемент массива
-
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Элемент массива
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
-
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.matchExpressions.values.Элемент массива
-
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Элемент массива
-
-
spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
-
-
-
spec.affinity.virtualMachineAndPodAntiAffinityОписывает правила anti-affiniy пода и ВМ.
-
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.matchExpressions.values.Элемент массива
-
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Элемент массива
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
-
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.matchExpressions.values.Элемент массива
-
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
-
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.matchExpressions.values.Элемент массива
-
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Элемент массива
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
-
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.matchExpressions.values.Элемент массива
-
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Элемент массива
-
-
spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
-
-
-
spec.blockDeviceRefs
Обязательный параметр
Список блочных устройств, которые могут быть смонтированы в ВМ.
Порядок загрузки определяется порядком в списке.
-
spec.blockDeviceRefs.kind
Поддерживаемые типы:
ClusterVirtualImage
— использоватьClusterVirtualImage
в качестве диска. Этот тип всегда монтируется в режиме для чтения (ReadOnly). Если образ является ISO-образом, он будет смонтирован как устройство CDROM.VirtualImage
— использоватьVirtualImage
в качестве диска. Этот тип всегда монтируется в режиме для чтения (ReadOnly). Если образ является ISO-образом, он будет смонтирован как устройство CDROM.VirtualDisk
— используйтеVirtualDisk
в качестве диска. Этот тип всегда монтируется в режиме для чтения и записи (ReadWrite).
Допустимые значения:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
-
spec.blockDeviceRefs.nameИмя ресурса заданного типа.
-
-
spec.bootloader
Загрузчик для VM:
- BIOS — использовать BIOS.
- EFI — использовать Unified Extensible Firmware (EFI/UEFI).
- EFIWithSecureBoot — использовать UEFI/EFI с поддержкой SecureBoot.
По умолчанию:
BIOS
Допустимые значения:
BIOS
,EFI
,EFIWithSecureBoot
-
spec.cpu
Обязательный параметр
Блок определяет настройки ЦП для виртуальной машины.-
spec.cpu.coreFractionГарантированная доля времени ЦП, которая будет выделена ВМ. Указывается в процентах.
По умолчанию:
100%
-
spec.cpu.cores
Обязательный параметр
Количество ядер.Допустимые значения:
1 <= X
-
-
spec.disruptions
Описании политики применения изменений, требующих перезагрузки ВМ.
Изменение некоторых параметров конфигурации ВМ требуют перезагрузки ВМ для их применения. Данная политика позволяет задать поведения, как ВМ будет реагировать на такие изменения.
По умолчанию:
{ "restartApprovalMode": "Manual" }
-
spec.disruptions.restartApprovalMode
Режим одобрения для изменений, требующих перезагрузки ВМ:
Manual
— изменения не будут применены, до тех пока пользователь самостоятельно не осуществит перезагрузку ВМ.Автоматический
— ВМ будет перезагружена, сразу, после сохранения параметров, требующих перезагрузки ВМ.
Допустимые значения:
Manual
,Automatic
-
-
spec.enableParavirtualization
Использовать шину
virtio
для подключения виртуальных устройств ВМ. Установите значение false, чтобы отключитьvirtio
для этой ВМ.Внимание: Для использования режима паравиртуализации некоторые ОС требуют установки соответствующих драйверов.
По умолчанию:
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.priorityClassNameПо аналогии, как и в параметре pods
spec.priorityClassName
в Kubernetes. -
spec.provisioningБлок описания сценария начальной инициализации ВМ.
-
spec.provisioning.sysprepRef
Ссылка на существующий ресурс со сценарием автоматизации Windows.
Структура ресурса для типа SysprepRef:
.data.autounattend.xml
.data.unattend.xml
-
spec.provisioning.sysprepRef.kind
Обязательный параметр
Тип ресурса.По умолчанию:
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.
Дополнительная информация: https://cloudinit.readthedocs.io/en/latest/reference/examples.html
-
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
— после создания ВМ всегда находится в работающем состоянии, даже в случае ее выключения средствами ОС, ВМ может быть выключена с помощью соответствующего API-сервиса.
По умолчанию:
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По аналогии, как и в параметре pods
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.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
).
-