Стадия жизненного цикла модуля: Общедоступная версия
У модуля есть требования для установки
Deckhouse Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
GPUClass
Короткие имена: gpucls
Область: Cluster
Версия: v1alpha1
-
строкаapiVersionВерсия API ресурса (например,
gpu.deckhouse.io/v1alpha1). -
строкаkindТип ресурса. Для этого объекта всегда
GPUClass. -
объектmetadataСтандартные метаданные Kubernetes.
-
объектspecОписание пула: какие объекты PhysicalGPU в него входят и какие профили партиций и стратегии разделения разрешены.
-
объектspec.partitionFilterОграничивает набор профилей партиций, используемых для генерируемых DeviceClass. Имена берутся из возможностей, указанных в статусе PhysicalGPU, и записываются в виде DNS-метки — без точек (например,
1g5gb, а не1g.5gb).-
массив строкspec.partitionFilter.allowБелый список имён, которые разрешено использовать.
-
массив строкspec.partitionFilter.denyЧёрный список имён, которые использовать нельзя.
-
-
объектspec.selectorОтбор объектов PhysicalGPU по лейблам. Пустой селектор соответствует всем объектам PhysicalGPU в кластере.
-
массив объектовspec.selector.matchExpressionsСписок требований к лейблам. Требования объединяются логическим И.
-
строкаspec.selector.matchExpressions.keyКлюч лейбла, к которому применяется требование.
-
строкаspec.selector.matchExpressions.operatorОтношение ключа к набору значений. Допустимые операторы:
In,NotIn,Exists,DoesNotExist. -
массив строкspec.selector.matchExpressions.valuesМассив значений. Для операторов
InиNotInмассив должен быть непустым, дляExistsиDoesNotExist— пустым.
-
-
объектspec.selector.matchLabelsНабор пар {ключ, значение}. Одна пара в
matchLabelsэквивалентна элементуmatchExpressionsс операторомInи единственным значением. Требования объединяются логическим И.
-
-
объектspec.sharingFilterОграничивает набор стратегий разделения, используемых для генерируемых DeviceClass. Имена берутся из лейблов PhysicalGPU с префиксом
gpu.deckhouse.io/sharing.(например,mps,ts).-
массив строкspec.sharingFilter.allowБелый список имён, которые разрешено использовать.
-
массив строкspec.sharingFilter.denyЧёрный список имён, которые использовать нельзя.
-
-
-
объектstatusНаблюдаемое состояние
GPUClass.-
массив объектовstatus.conditionsУсловия, отражающие состояние реконсиляции этого
GPUClass.-
строкаstatus.conditions.lastTransitionTimeВремя последнего перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageHuman-readable сообщение с подробностями о переходе.
Максимальная длина:
32768 -
целое числоstatus.conditions.observedGenerationЗначение
.metadata.generation, на основании которого было выставлено условие.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonПрограммный идентификатор причины последнего перехода условия.
Длина:
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Тип условия.
Максимальная длина:
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Полный список объектов DeviceClass, сгенерированных для этого
GPUClass. Является достоверным источником имён. -
целое числоstatus.matchingPhysicalGPUCountКоличество объектов PhysicalGPU, попавших под селектор при последней реконсиляции.
-
PhysicalGPU
Короткие имена: pgpu
Область: Cluster
Версия: v1alpha1
-
строка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.gpuUUIDUUID GPU, сообщаемый драйвером вендора.
-
объектstatus.currentState.partitionТекущее состояние режима разбиения GPU.
-
строкаstatus.currentState.partition.modeТекущий режим разбиения, сообщаемый адаптером.
-
-
целое числоstatus.currentState.powerLimitCurrentWТекущий power limit в ваттах.
-
целое числоstatus.currentState.powerLimitEnforcedWПринудительный (enforced) power limit в ваттах.
-
-
объектstatus.driverBindingНаблюдаемая привязка драйвера ядра: сам драйвер, классифицированный режим обслуживания и наблюдаемое состояние управления устройством. Владение полями разделено через Server-Side Apply:
driverиmodeпринадлежат gpu-node-agent,managementState— gpu-controller.-
строкаstatus.driverBinding.driverДрайвер ядра, привязанный к устройству в sysfs (например,
nvidia,vfio-pci,nvidia-vgpu-vfioили пустая строка, если драйвер не привязан). Считается достоверным источником истины. Владелец — field manager gpu-node-agent. -
строкаstatus.driverBinding.managementStateНаблюдаемый ответ на вопрос «кто управляет устройством»: модуль (
Managed), намеренно выведенное из-под управления и уже освобождённое устройство (Excluded), непреднамеренный orphan (Orphaned) или неопределённо (Unknown). Ортогональноmode. ТолькоOrphanedразрешает reclaim; пока opt-out ожидает освобождения ещё живой привязки, значение остаётсяManaged(переход отражается в условииManagedс причинойExcludedReleasePending), поэтому живая привязка никогда не подлежит reclaim. Владелец — field manager gpu-controller.Допустимые значения:
Managed,Excluded,Orphaned,Unknown -
строкаstatus.driverBinding.modeКлассифицированный режим обслуживания, выведенный из привязанного драйвера:
Compute,Passthrough,Unbound,Unknown. Транспорт из него выводить нельзя. Владелец — field manager gpu-node-agent.Допустимые значения:
Compute,Passthrough,Unbound,Unknown
-
-
объектstatus.nodeInfoСведения об узле, ОС, ядре и обнаружении bare metal-узла.
-
булевыйstatus.nodeInfo.bareMetalПризнак того, что узел является bare metal.
-
строкаstatus.nodeInfo.nodeNameИмя узла Kubernetes, на котором обнаружен GPU.
-
-
объектstatus.pciInfoPCI-идентификация устройства.
-
строка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.idPCI device ID (например,
20b7).
-
-
объектstatus.pciInfo.vendorНазвание вендора устройства.
-
строкаstatus.pciInfo.vendor.idPCI vendor ID (например,
10de).
-
-
-
строкаstatus.phaseЖизненный цикл GPU, вычисляемый контроллером на основе условий:
Pending,Initializing,Ready,Reconfiguring,Failed,Lost,Passthrough.Допустимые значения:
Pending,Initializing,Ready,Reconfiguring,Failed,Lost,Passthrough
-