Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки

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

GPUClass

Scope: Cluster
Version: v1alpha1

GPUClass is the Schema for the gpuclasses API.
  • apiVersion
    строка
    APIVersion 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
  • kind
    строка
    Kind 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
    объект
    GPUClassSpec defines a named pool of PhysicalGPU objects and the generated DeviceClass variants that users can request through extended resources.
    • spec.partitionFilter
      объект
      PartitionFilter restricts partition profile names used for generated DeviceClasses. Names come from PhysicalGPU status capabilities.
      • spec.partitionFilter.allow
        массив строк
        Allow is a whitelist of names that may be used.
      • spec.partitionFilter.deny
        массив строк
        Deny is a blacklist of names that must not be used.
    • spec.selector
      объект
      Selector selects PhysicalGPU objects by labels. Empty selector means all PhysicalGPU objects in the cluster.
      • spec.selector.matchExpressions
        массив объектов
        matchExpressions is a list of label selector requirements. The requirements are ANDed.
        • spec.selector.matchExpressions.key
          строка
          key is the label key that the selector applies to.
        • spec.selector.matchExpressions.operator
          строка
          operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
        • spec.selector.matchExpressions.values
          массив строк
          values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
      • spec.selector.matchLabels
        объект
        matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
    • spec.sharingFilter
      объект
      SharingFilter restricts sharing mode names used for generated DeviceClasses. Names come from PhysicalGPU labels with the gpu.deckhouse.io/sharing. prefix.
      • spec.sharingFilter.allow
        массив строк
        Allow is a whitelist of names that may be used.
      • spec.sharingFilter.deny
        массив строк
        Deny is a blacklist of names that must not be used.
  • status
    объект
    GPUClassStatus defines the observed state of GPUClass.
    • status.conditions
      массив объектов
      Conditions represent reconciliation status for this GPUClass.
      • status.conditions.lastTransitionTime
        строка
        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
      • status.conditions.message
        строка
        message is a human readable message indicating details about the transition. This may be an empty string.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

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

      • status.conditions.reason
        строка
        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        status of the condition, one of True, False, Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Максимальная длина: 316

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

    • status.deviceClassNames
      массив строк
      DeviceClassNames is the complete list of DeviceClass objects generated for this GPUClass.
    • status.matchingPhysicalGPUCount
      целочисленный
      MatchingPhysicalGPUCount is the number of PhysicalGPU objects matching the selector during the latest reconciliation.

PhysicalGPU

Scope: Cluster
Version: v1alpha1

Кластерный ресурс, описывающий физический GPU, обнаруженный агентом на узле: PCI-идентификацию, условия готовности и возможности устройства.
  • apiVersion
    строка
    Версия API ресурса (например, gpu.deckhouse.io/v1alpha1).
  • kind
    строка
    Тип ресурса. Для этого объекта всегда PhysicalGPU.
  • metadata
    объект
    Стандартные метаданные Kubernetes.
  • spec
    объект
    Желаемое состояние (в v1alpha1 не используется, spec пустой).
  • status
    объект
    Набор наблюдаемых характеристик и условий готовности GPU.
    • status.capabilities
      объект
      Снимок возможностей (capability snapshot) устройства (доступен при готовности драйвера, когда DriverReady=True).
      • status.capabilities.architecture
        строка
        Архитектура GPU (например, Hopper, RDNA3, Xe-HPC).
      • status.capabilities.computeAPI
        строка
        Основной вычислительный API устройства: CUDA, ROCm, oneAPI.
      • status.capabilities.computeCapability
        строка
        Строка Compute Capability. Например, 8.0.
      • status.capabilities.memoryMiB
        целочисленный
        Общий объём видеопамяти в MiB.
      • status.capabilities.partitionSupport
        объект
        Описание возможностей разбиения GPU на разделы (MIG, SPX, SR-IOV).
        • status.capabilities.partitionSupport.profiles
          массив объектов
          Список поддерживаемых профилей разбиения.
          • status.capabilities.partitionSupport.profiles.maxInstances
            целочисленный
            Максимальное количество экземпляров профиля.
          • status.capabilities.partitionSupport.profiles.memoryMiB
            целочисленный
            Объём видеопамяти профиля в MiB.
          • status.capabilities.partitionSupport.profiles.name
            строка
            Имя профиля (например, 1g.6gb, spx-half).
          • status.capabilities.partitionSupport.profiles.profileID
            целочисленный
            Числовой идентификатор профиля.
          • status.capabilities.partitionSupport.profiles.resources
            объект
            Вендор-независимый набор счётчиков ресурсов профиля (например, {"multiprocessors": 14}).
          • status.capabilities.partitionSupport.profiles.sliceCount
            целочисленный
            Количество слайсов, занимаемых профилем.
        • status.capabilities.partitionSupport.supported
          булевый

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

          Признак поддержки разбиения на разделы.
        • status.capabilities.partitionSupport.technology
          строка
          Технология разбиения: MIG, SPX, SR-IOV.
        • status.capabilities.partitionSupport.totalSlices
          целочисленный
          Общее количество слайсов разбиения на GPU.
      • status.capabilities.powerLimitMaxW
        целочисленный
        Максимальный поддерживаемый power limit в ваттах.
      • status.capabilities.powerLimitMinW
        целочисленный
        Минимальный поддерживаемый power limit в ваттах.
      • status.capabilities.productName
        строка
        Название GPU (например, NVIDIA A30).
      • status.capabilities.vendor
        строка
        Идентификатор вендора GPU (например, nvidia, amd, intel).
    • status.conditions
      массив объектов
      Список условий готовности GPU (DriverReady, HardwareHealthy).
      • status.conditions.lastTransitionTime
        строка
        Время последнего перехода условия из одного статуса в другой.
      • status.conditions.message
        строка
        Человекочитаемое сообщение с подробностями о переходе. Может быть пустой строкой.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        Значение .metadata.generation, при котором было установлено условие. Если меньше текущего generation, условие устарело.

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

      • status.conditions.reason
        строка
        Программный идентификатор причины последнего перехода условия. Значение в формате CamelCase.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия — одно из значений True, False, Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        Тип условия в формате CamelCase или foo.example.com/CamelCase.

        Максимальная длина: 316

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

    • status.currentState
      объект
      Текущее состояние привязки драйвера и рантайм-параметров (доступно при готовности драйвера).
      • status.currentState.computeAPIVersion
        строка
        Строка версии вычислительного API во время работы.
      • status.currentState.driverVersion
        строка
        Версия драйвера.
      • status.currentState.gpuUUID
        строка
        UUID GPU, сообщаемый драйвером вендора.
      • status.currentState.partition
        объект
        Текущее состояние режима разбиения GPU.
        • status.currentState.partition.mode
          строка
          Текущий режим разбиения, сообщаемый адаптером.
      • status.currentState.powerLimitCurrentW
        целочисленный
        Текущий power limit в ваттах.
      • status.currentState.powerLimitEnforcedW
        целочисленный
        Принудительный (enforced) power limit в ваттах.
    • status.nodeInfo
      объект
      Сведения об узле, ОС, ядре и обнаружении bare metal-узла.
      • status.nodeInfo.bareMetal
        булевый
        Признак того, что узел является bare metal.
      • status.nodeInfo.nodeName
        строка
        Имя узла Kubernetes, на котором обнаружен GPU.
    • status.pciInfo
      объект
      PCI-идентификация устройства.
      • status.pciInfo.address
        строка
        Полный PCI-адрес устройства (domain:bus:slot.func). Например, 0000:02:00.0.
      • status.pciInfo.class
        объект
        Описание PCI-класса устройства (base+subclass).
        • status.pciInfo.class.code
          строка
          Код PCI-класса (base+subclass). Например, 0302.
      • status.pciInfo.device
        объект
        Идентификатор PCI устройства.
        • status.pciInfo.device.id
          строка
          PCI device ID (например, 20b7).
      • status.pciInfo.vendor
        объект
        Название вендора устройства.
        • status.pciInfo.vendor.id
          строка
          PCI vendor ID (например, 10de).
    • status.phase
      строка
      Жизненный цикл GPU, вычисляемый контроллером на основе условий: Pending, Initializing, Ready, Reconfiguring, Failed, Lost.

      Допустимые значения: Pending, Initializing, Ready, Reconfiguring, Failed, Lost