Предварительная версия. Функциональность может измениться, но основные возможности сохранятся. Совместимость с будущими версиями может потребовать ручных действий по миграции.
ClusterVirtualImage
Scope: Cluster
Version: v1alpha2
Описывает образ диска виртуальной машины, который может использоваться в качестве источника данных для новых ресурсов VirtualDisks или установочный образ (iso), который может быть смонтирован в ресурсе VirtualMachines напрямую. Данный тип ресурса доступен для всех пространств имен в кластере.
Этот ресурс не может быть изменён после создания.
После появления в кластере этого ресурса создаётся образ контейнера, который хранится в специальном реестре контейнеров Deckhouse Virtualization Container Registry (DVCR).
-
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.dataSource
Обязательный параметр
Тип источника, из которого будет создан образ.-
spec.dataSource.containerImageИспользование образа, который хранится во внешнем реестре контейнеров. Поддерживаются только реестры контейнеров с включённым протоколом TLS. Чтобы предоставить собственную цепочку центров сертификации, используйте поле
caBundle
.-
spec.dataSource.containerImage.caBundleЦепочка сертификатов в формате Base64 для проверки подключения к реестру контейнеров.
Пример:
caBundle: YWFhCg==
-
spec.dataSource.containerImage.image
Обязательный параметр
Путь к образу в реестре контейнеров.Шаблон:
^(?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Имя секрета, содержащего учётные данные для подключения к реестру контейнеров.
-
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 или VirtualDiskSnapshot для создания образа.
-
spec.dataSource.objectRef.kind
Обязательный параметр
Ссылка на существующий ресурс VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.Допустимые значения:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
,VirtualDiskSnapshot
-
spec.dataSource.objectRef.name
Обязательный параметр
Имя существующего ресурса VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot. -
spec.dataSource.objectRef.namespaceПространство имён, в котором расположен ресурс VirtualImage, VirtualDisk или VirtualDiskSnapshot.
-
-
spec.dataSource.type
Обязательный параметр
Доступные типы источников для создания образа:
HTTP
— из файла, опубликованного на HTTP/HTTPS-сервере;ContainerImage
— из другого образа в реестре контейнеров;ObjectRef
— из существующего ресурса;Upload
— загрузить вручную.
Допустимые значения:
HTTP
,ContainerImage
,ObjectRef
,Upload
-
-
VirtualDisk
Scope: Namespaced
Version: v1alpha2
Ресурс VirtualDisk описывает желаемую конфигурацию диска виртуальной машины. VirtualDisk можно смонтировать в виртуальной машине статически, указав его в списке дисков .spec.blockDeviceRefs
, или «на лету» – с помощью ресурса VirtualMachineBlockDeviceAttachments.
После создания VirtualDisk можно изменить только размер диска с помощью поля .spec.persistentVolumeClaim.size
. Все остальные поля изменить нельзя.
-
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.dataSourceТип источника, из которого будет создан диск. Если источник (
.spec.dataSource
) отсутствует, будет создан пустой диск.-
spec.dataSource.containerImageИспользование образа, который хранится во внешнем реестре контейнеров. Поддерживаются только реестры контейнеров с включённым протоколом TLS. Чтобы предоставить собственную цепочку центров сертификации, используйте поле
caBundle
.-
spec.dataSource.containerImage.caBundleЦепочка сертификатов в формате Base64 для проверки подключения к реестру контейнеров.
Пример:
caBundle: YWFhCg==
-
spec.dataSource.containerImage.image
Обязательный параметр
Путь к образу в реестре контейнеров.Шаблон:
^(?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Имя секрета, содержащего учётные данные для подключения к реестру контейнеров.
-
-
-
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.Допустимые значения:
ClusterVirtualImage
,VirtualImage
,VirtualDiskSnapshot
-
spec.dataSource.objectRef.name
Обязательный параметр
Имя существующего ресурса VirtualImage, ClusterVirtualImage или VirtualDiskSnapshot.
-
-
spec.dataSource.type
Доступные типы источников для создания диска:
HTTP
— из файла, опубликованного на HTTP/HTTPS-сервере;ContainerImage
— из образа в реестре контейнеров;ObjectRef
— из существующего ресурса;Upload
— загрузить образ диска вручную.
Допустимые значения:
HTTP
,ContainerImage
,ObjectRef
,Upload
-
-
spec.persistentVolumeClaimНастройки для создания PersistentVolumeClaim (PVC) для хранения диска.
-
spec.persistentVolumeClaim.size
Желаемый размер PVC для хранения диска. Если диск создается из образа, размер PVC должен быть не меньше размера исходного образа в распакованном состоянии.
Данный параметр можно опустить, если заполнен блок
.spec.dataSource
. В этом случае контроллер определит размер диска автоматически, на основе размера распакованного образа из источника указанного в.spec.dataSource
.Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-
spec.persistentVolumeClaim.storageClassName
Имя StorageClass, необходимого для PVC. Подробнее об использовании StorageClass для PVC: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.
При создании дисков пользователь может явно указать необходимый StorageClass. Если этого не сделать, будет использован StorageClass, доступный по умолчанию.
Особенности диска и поведение виртуальной машины зависят от выбранного StorageClass.
Параметр
VolumeBindingMode
в StorageClass влияет на процесс создания дисков. Допустимые значения:Immediate
- диск будет создан и доступен для использования сразу после создания;WaitForFirstConsumer
- диск будет создан при первом использовании на узле, где будет запущена виртуальная машина.
StorageClass поддерживает различные настройки хранения:
- создание блочного устройства (
Block
) или файловой системы (FileSystem
); - множественный доступ (
ReadWriteMany
) или единичный доступ (ReadWriteOnce
).ReadWriteMany
-диски поддерживают множественный доступ, что позволяет выполнять «живую» миграцию виртуальных машин. В отличие от них,ReadWriteOnce
-диски, ограниченные доступом только с одного узла, не могут обеспечить такую возможность.
Для известных типов хранилищ Deckhouse самостоятельно определит наиболее эффективные настройки при создании дисков (в порядке убывания приоритетов):
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 напрямую.
Этот ресурс не может быть изменён после создания.
После появления в кластере этого ресурса создаётся образ контейнера, который хранится в специальном реестре контейнеров Deckhouse Virtualization Container Registry (DVCR).
-
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.dataSource
Обязательный параметр
Тип источника, из которого будет создан образ.-
spec.dataSource.containerImageИспользование образа, который хранится во внешнем реестре контейнеров. Поддерживаются только реестры контейнеров с включённым протоколом TLS. Чтобы предоставить собственную цепочку центров сертификации, используйте поле
caBundle
.-
spec.dataSource.containerImage.caBundleЦепочка сертификатов в формате Base64 для проверки подключения к реестру контейнеров.
Пример:
caBundle: YWFhCg==
-
spec.dataSource.containerImage.image
Обязательный параметр
Путь к образу в реестре контейнеров.Шаблон:
^(?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Имя секрета, содержащего учётные данные для подключения к реестру контейнеров.
-
-
-
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 или VirtualDiskSnapshot для создания образа.
-
spec.dataSource.objectRef.kind
Обязательный параметр
Ссылка на существующий ресурс VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.Допустимые значения:
ClusterVirtualImage
,VirtualImage
,VirtualDisk
,VirtualDiskSnapshot
-
spec.dataSource.objectRef.name
Обязательный параметр
Имя существующего ресурса VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.
-
-
spec.dataSource.type
Доступные типы источников для создания образа:
HTTP
— из файла, опубликованного на HTTP/HTTPS-сервере;ContainerImage
— из образа в реестре контейнеров;ObjectRef
— из существующего ресурса;Upload
— загрузить образ диска вручную.
Допустимые значения:
HTTP
,ContainerImage
,ObjectRef
,Upload
-
-
spec.persistentVolumeClaimНастройки для создания PersistentVolumeClaim (PVC) для хранения образа с хранилищем типа ‘PersistentVolumeClaim’.
-
spec.persistentVolumeClaim.storageClassName
Имя StorageClass, необходимого для PVC. Подробнее об использовании StorageClass для PVC: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
При создании образа с хранилищем типа ‘PersistentVolumeClaim’ пользователь может явно указать необходимый StorageClass для создания диска. Если этого не сделать, будет использован StorageClass, доступный по умолчанию.
-
-
spec.storage
Обязательный параметр
Тип хранилища для образа:
ContainerRegistry
— использовать реестр контейнеров DVCR. В этом случае образы будут загружаться в контейнер, а затем в DVCR (поставляется с модулем виртуализации);Kubernetes
- устаревший тип хранилища. Не рекомендуется к использованию и может быть удалён в будущих версиях. Используйте типPersistentVolumeClaim
;PersistentVolumeClaim
- использовать PVC.
По умолчанию:
ContainerRegistry
Допустимые значения:
ContainerRegistry
,Kubernetes
,PersistentVolumeClaim
-
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
Обязательный параметр
Блочное устройство, которое будет подключено к ВМ в качестве hot-plug-диска.-
spec.blockDeviceRef.kind
Тип блочного устройства. Возможные типы:
VirtualDisk
— использоватьVirtualDisk
в качестве диска. Этот тип всегда монтируется в режиме RW.VirtualImage
— использоватьVirtualImage
в качестве диска. Этот тип всегда монтируется в режиме RO.ClusterVirtualImage
- использоватьClusterVirtualImage
в качестве диска. Этот тип всегда монтируется в режиме RO.
Допустимые значения:
VirtualDisk
,VirtualImage
,ClusterVirtualImage
-
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
-
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
-
-
-
spec.tolerationsПараметр аналогичен параметру
spec.tolerations
у подов. Подробнее о taints и tolerations. Tolerations из этого параметра будут объединены с tolerations, указанными в ресурсе VirtualMachine. При этом, tolerations у VirtualMachine имеют больший приоритет.-
spec.tolerations.effectEffect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
-
spec.tolerations.keyKey is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
-
spec.tolerations.operatorOperator represents a key’s relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
-
spec.tolerations.tolerationSecondsTolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
-
spec.tolerations.valueValue is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
-
-
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
-
apiVersion
-
kind
-
metadata
-
specПараметры конфигурации ресурса VirtualMachineIPAddressLease.
-
spec.virtualMachineIPAddressRefСсылка на существующие ресурсы VirtualMachineIPAddress.
-
spec.virtualMachineIPAddressRef.name
Обязательный параметр
Имя ссылающегося ресурса VirtualMachineIPAddress. -
spec.virtualMachineIPAddressRef.namespace
Обязательный параметр
Пространство имён ссылающегося ресурса VirtualMachineIPAddress.
-
-
VirtualMachineOperation
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.forceФорсирует выполнение операции. Применяется только для операций
Restart
иStop
. В этом случае действие над виртуальной машиной выполняется немедленно. -
spec.type
Обязательный параметр
Операции над виртуальной машиной:
Start
- запустить виртуальную машину;Stop
- остановить виртуальную машину;Restart
- перезапустить виртуальную машину;Migrate
(устаревшее значение) - мигрировать виртуальную машину на другой узел, доступный для запуска данной ВМ;Evict
- мигрировать виртуальную машину на другой узел, доступный для запуска данной ВМ.
Допустимые значения:
Restart
,Start
,Stop
,Migrate
,Evict
-
spec.virtualMachineName
Обязательный параметр
Имя виртуальной машины, для которой выполняется операция.
-
VirtualMachineRestore
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.nameReplacementsПравила переименования ресурсов виртуальной машины.
-
spec.nameReplacements.fromСелектор для выбора ресурсов для переименования.
-
spec.nameReplacements.from.kindТип ресурса.
-
spec.nameReplacements.from.name
Обязательный параметр
Имя ресурса, которое нужно переименовать.
-
-
spec.nameReplacements.toНовое имя ресурса.
-
-
spec.virtualMachineSnapshotName
Обязательный параметр
Имя снимка для восстановления виртуальной машины.Минимальная длина:
1
-
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.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Описывает 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.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-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.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-образ будет смонтирован как устройство 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.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
).
-
VirtualMachineSnapshot
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.keepIPAddress
Обязательный параметр
Сохранить IP-адрес виртуальной машины или нет:
Always
- при создании снимка IP-адрес виртуальной машины будет сконвертирован изAuto
вStatic
и сохранён;Never
- при создании снимка IP-адрес виртуальной машины не будет сконвертирован.
По умолчанию:
Always
Допустимые значения:
Always
,Never
-
spec.requiredConsistency
Обязательный параметр
Создавать снимок виртуальной машины только в том случае, если возможно заморозить её через агента.
Если установлено значение
true
, снимок виртуальной машины будет создан только в следующих случаях:- виртуальная машина выключена;
- виртуальная машина с агентом, операция заморозки прошла успешно.
По умолчанию:
true
-
spec.virtualMachineName
Обязательный параметр
Имя виртуальной машины для создания снимка.Минимальная длина:
1
-
spec.volumeSnapshotClasses
-
spec.volumeSnapshotClasses.storageClassNameИмя ресурса StorageClass, соответствующее указанному ресурсу VolumeSnapshotClass.
-
spec.volumeSnapshotClasses.volumeSnapshotClassNameИмя ресурса VolumeSnapshotClass, который будет использован для создания снимков виртуальных дисков с соответствующим классом хранения.
-
-