Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки
Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
GPUClass
Scope: Cluster
Version: v1alpha1
-
строка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
-
объектspecGPUClassSpec defines a named pool of PhysicalGPU objects and the generated DeviceClass variants that users can request through extended resources.
-
объектspec.partitionFilterPartitionFilter restricts partition profile names used for generated DeviceClasses. Names come from PhysicalGPU status capabilities.
-
массив строкspec.partitionFilter.allowAllow is a whitelist of names that may be used.
-
массив строкspec.partitionFilter.denyDeny is a blacklist of names that must not be used.
-
-
объектspec.selectorSelector selects PhysicalGPU objects by labels. Empty selector means all PhysicalGPU objects in the cluster.
-
массив объектовspec.selector.matchExpressionsmatchExpressions is a list of label selector requirements. The requirements are ANDed.
-
строкаspec.selector.matchExpressions.keykey is the label key that the selector applies to.
-
строкаspec.selector.matchExpressions.operatoroperator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
-
массив строкspec.selector.matchExpressions.valuesvalues 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.matchLabelsmatchLabels 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.sharingFilterSharingFilter restricts sharing mode names used for generated DeviceClasses. Names come from PhysicalGPU labels with the gpu.deckhouse.io/sharing. prefix.
-
массив строкspec.sharingFilter.allowAllow is a whitelist of names that may be used.
-
массив строкspec.sharingFilter.denyDeny is a blacklist of names that must not be used.
-
-
-
объектstatusGPUClassStatus defines the observed state of GPUClass.
-
массив объектовstatus.conditionsConditions represent reconciliation status for this GPUClass.
-
строкаstatus.conditions.lastTransitionTimelastTransitionTime 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.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationobservedGeneration 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.reasonreason 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.statusstatus of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typetype 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.deviceClassNamesDeviceClassNames is the complete list of DeviceClass objects generated for this GPUClass.
-
целочисленныйstatus.matchingPhysicalGPUCountMatchingPhysicalGPUCount is the number of PhysicalGPU objects matching the selector during the latest reconciliation.
-
PhysicalGPU
Scope: Cluster
Version: 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.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.Допустимые значения:
Pending,Initializing,Ready,Reconfiguring,Failed,Lost
-