Стадия жизненного цикла модуля: Общедоступная версия

У модуля есть требования для установки

Deckhouse Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.

DVPInstanceClass

Область: Cluster
Версия: v1alpha1

  • metadata
    объект
  • spec
    объект
    • spec.additionalDisks
      массив объектов

      Параметры дополнительных дисков виртуальной машины.

      Каждый элемент массива описывает отдельный дополнительный диск. Для каждого диска необходимо задать параметр size, параметр storageClass необязателен.

      • spec.additionalDisks.size
        строка
        Размер дополнительного диска.

        Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

        Пример:

        size: 10Gi
        
      • spec.additionalDisks.storageClass
        строка

        Имя существующего StorageClass, который будет использоваться для создания диска.

        Если значение не указано, то будет использоваться StorageClass, согласно настройке глобального параметра storageClass.

    • spec.etcdDisk
      объект
      Параметры диска для etcd.
      • spec.etcdDisk.size
        строка

        Обязательный параметр

        Размер дополнительного диска.

        Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

        Пример:

        size: 10Gi
        
      • spec.etcdDisk.storageClass
        строка

        Имя существующего StorageClass, который будет использоваться для создания диска.

        Если значение не указано, то будет использоваться StorageClass, согласно настройке глобального параметра storageClass.

    • spec.rootDisk
      объект

      Обязательный параметр

      Указывает настройки для корневого диска виртуальной машины.
      • spec.rootDisk.image
        объект

        Обязательный параметр

        Параметры образа, который будет использоваться для создания корневого диска виртуальной машины.
        • spec.rootDisk.image.kind
          строка

          Обязательный параметр

          Тип источника изображения.

          Допустимые значения: ClusterVirtualImage, VirtualImage, VirtualDisk

        • spec.rootDisk.image.name
          строка

          Обязательный параметр

          Имя образа, который будет использоваться для создания корневого диска.

          Для установки требуются образы ОС Linux с предустановленным cloud-init.

      • spec.rootDisk.size
        строка

        Обязательный параметр

        Размер корневого диска.

        Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

        Пример:

        size: 10Gi
        
      • spec.rootDisk.storageClass
        строка

        Имя существующего StorageClass будет использоваться для создания корневого диска виртуальной машины.

        Если значение не указано, то будет использоваться StorageClass, согласно настройке глобального параметра storageClass.

    • spec.virtualMachine
      объект

      Обязательный параметр

      Настройки виртуальной машины для созданного узла.

      Для виртуальных машин узлов используется политика запуска runPolicy: AlwaysOnUnlessStoppedManually. Это позволяет вручную останавливать ВМ (например, для обслуживания) без принудительного автозапуска.

      • spec.virtualMachine.additionalAnnotations
        объект
        Дополнительные аннотации для ресурса виртуальной машины.

        Пример:

        cluster-owner: user
      • spec.virtualMachine.additionalLabels
        объект
        Дополнительные метки для ресурса виртуальной машины.

        Пример:

        cluster-owner: user
      • spec.virtualMachine.bootloader
        строка

        Определяет загрузчик для виртуальной машины.

        • BIOS — используется BIOS;
        • EFI — используется Unified Extensible Firmware (EFI/UEFI);
        • EFIWithSecureBoot — используется UEFI/EFI c поддержкой Secure Boot.

        По умолчанию: EFI

        Допустимые значения: BIOS, EFI, EFIWithSecureBoot

      • spec.virtualMachine.cpu
        объект

        Обязательный параметр

        Настройки процессора для виртуальной машины.
        • spec.virtualMachine.cpu.coreFraction
          строка

          Гарантированная доля CPU, выделяемая виртуальной машине, в процентах.

          При значении Auto выбор доли CPU передаётся Vertical VirtualMachine Autoscaler родительского кластера DVP.

          Vertical VirtualMachine Autoscaler включается автоматически, если модуль virtualization используется в редакции EE и включён модуль vertical-pod-autoscaler. Кроме того, в ModuleConfig модуля virtualization должен быть включён feature gate HotplugCPUAndMemoryWithInPlaceResize.

          По умолчанию: 100%

          Шаблон: ^(Auto|(100|[1-9][0-9]?)%)$

          Пример:

          coreFraction: 100%
          
        • spec.virtualMachine.cpu.cores
          целое число

          Обязательный параметр

          Количество ядер процессора для виртуальной машины.

          Допустимые значения: 1 <= X

          Пример:

          cores: '4'
          
      • spec.virtualMachine.gpus
        массив объектов

        Список GPU-устройств, подключаемых к виртуальной машине.

        Каждый элемент ссылается на GPUClass по имени, порядок элементов не важен. Чтобы подключить несколько устройств одного класса, повторите элемент. К одной виртуальной машине подключается не более 16 устройств.

        В кластере, где создаются виртуальные машины, включите feature gate GPU в параметре featureGates модуля virtualization, включите модуль gpu в режиме DRA и создайте нужный GPUClass. Полный список требований приведён в разделе «GPU-устройства в виртуальных машинах». Виртуальная машина с подключённым GPU не переносится живой миграцией.

        Изменение параметра у существующего класса по-разному влияет на узлы в зависимости от типа NodeGroup, которая на него ссылается:

        • CloudEphemeral — узлы пересоздаются;
        • CloudPermanent и master-узлы — команда dhctl converge применяет изменение к существующим виртуальным машинам. Виртуальная машина обновляется на месте, а не пересоздаётся, и, поскольку для неё задан disruptions.restartApprovalMode со значением Automatic, изменение применяется перезагрузкой виртуальной машины без дополнительного подтверждения. Master-узлы команда обновляет по одному и дожидается готовности каждого.

        Проброс делает устройство доступным внутри виртуальной машины, но не публикует на узле ресурс nvidia.com/gpu. Чтобы узел предоставлял этот ресурс, установите драйвер NVIDIA модулем gpu и задайте в NodeGroup секцию spec.gpu.

        Cluster Autoscaler строит шаблонный узел пустой NodeGroup только из CPU и памяти, GPU в него не попадает. Поэтому NodeGroup с GPU и cloudInstances.minPerZone со значением 0 не масштабируется с нуля под рабочие нагрузки, запрашивающие GPU. Для таких NodeGroup задавайте minPerZone не меньше 1.

        • spec.virtualMachine.gpus.gpuClassName
          строка

          Имя GPUClass, который выбирает подключаемый GPU, например nvidia-h100.

          GPUClass должен существовать в кластере, где создаются виртуальные машины.

          Длина: 1..253

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

          Пример:

          gpuClassName: nvidia-h100
          
      • spec.virtualMachine.liveMigrationPolicy
        строка

        Политика живой миграции виртуальной машины.

        • Manual — миграция управляется вручную;
        • Never — миграция отключена;
        • AlwaysSafe — всегда использовать безопасную миграцию (может не сработать при высокой скорости изменений памяти ВМ);
        • PreferSafe — предпочитать безопасную миграцию, переключаться на forced при необходимости;
        • AlwaysForced — всегда использовать forced-миграцию с замедлением ВМ;
        • PreferForced — предпочитать forced-миграцию (рекомендуется для master-узлов из-за высокой активности памяти).

        По умолчанию: PreferForced

        Допустимые значения: Manual, Never, AlwaysSafe, PreferSafe, AlwaysForced, PreferForced

        Пример:

        liveMigrationPolicy: PreferForced
        
      • spec.virtualMachine.memory
        объект

        Обязательный параметр

        Определяет параметры памяти для виртуальной машины.
        • spec.virtualMachine.memory.size
          строка

          Обязательный параметр

          Количество ресурсов памяти, разрешенных для виртуальной машины.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Пример:

          size: 4Gi
          
      • spec.virtualMachine.priorityClassName
        строка
        Аналогично параметру spec.priorityClassName в Kubernetes Pods.
      • spec.virtualMachine.runPolicy
        строка

        Политика запуска виртуальной машины.

        • AlwaysOn — виртуальная машина всегда должна быть запущена;
        • AlwaysOff — виртуальная машина всегда должна быть остановлена;
        • Manual — состояние виртуальной машины управляется вручную;
        • AlwaysOnUnlessStoppedManually — виртуальную машину можно остановить вручную (например, для обслуживания), но она автоматически запустится после перезагрузки хоста.

        По умолчанию: AlwaysOnUnlessStoppedManually

        Допустимые значения: AlwaysOn, AlwaysOff, Manual, AlwaysOnUnlessStoppedManually

        Пример:

        runPolicy: AlwaysOnUnlessStoppedManually
        
      • spec.virtualMachine.virtualMachineClassName
        строка

        Обязательный параметр

        Имя VirtualMachineClass.

        Ресурс VirtualMachineClass предназначен для централизованной конфигурации предпочтительных параметров виртуальных машин. Он позволяет задавать инструкции CPU, политики конфигурации ресурсов CPU и памяти для виртуальных машин, а также устанавливать соотношения этих ресурсов.