Стадия жизненного цикла модуля: Experimental
У модуля есть требования для установки
Deckhouse Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
InferenceServiceClass
Short names: isc
Scope: Cluster
Version: v1alpha1
-
объектspecЖелаемое состояние класса сервиса инференса.
-
объектspec.acceleratorPolicyОграничения размещения GPU для заказов этого класса; ограничивают исход планирования, потому что заказ ускоритель не запрашивает.
-
массив строкspec.acceleratorPolicy.allowedDeviceClassesОпциональный список допустимых имён кластерных DeviceClass для размещения планировщиком; при пустом значении или отсутствии поля размещение учитывает все кандидаты DeviceClass в кластере.
-
массив строкspec.acceleratorPolicy.allowedPlacementTypes
Обязательный параметр
Допустимые режимы размещения (Partition, WholeDevice).-
строкаspec.acceleratorPolicy.allowedPlacementTypes.Элемент массиваAcceleratorPlacementType selects whole-device or partition placement.
Допустимые значения:
Partition,WholeDevice
-
-
массив строкspec.acceleratorPolicy.allowedSharingModes
Обязательный параметр
Допустимые режимы совместного использования ускорителя (Shared, Dedicated).-
строкаspec.acceleratorPolicy.allowedSharingModes.Элемент массиваAcceleratorSharingMode selects how accelerators may be shared between workloads.
Допустимые значения:
Shared,Dedicated
-
-
целочисленныйspec.acceleratorPolicy.maxAcceleratorCount
Обязательный параметр
Верхняя граница числа устройств, которое план запуска назначит одной реплике заказа этого класса.Допустимые значения:
1 <= X -
целочисленныйНеобязательная верхняя граница доли устройства, которую назначит план запуска, в процентах.
Допустимые значения:
1 <= X <= 100 -
целочисленныйНеобязательная нижняя граница доли устройства, которую назначит план запуска, в процентах.
Допустимые значения:
1 <= X <= 100
-
-
объектspec.admissionPolicyОграничение namespace, в которых разрешены заказы на этот класс.
-
массив строкspec.admissionPolicy.allowedNamespaces
Обязательный параметр
Список разрешённых namespace; значение “*” разрешает любой namespace.
-
-
объектspec.exposurePolicy
Обязательный параметр
Политика публикации точки доступа и аутентификации.-
строкаspec.exposurePolicy.authentication
Обязательный параметр
Способ аутентификации клиентов API инференса (Token или None).Допустимые значения:
Token,None -
объектspec.exposurePolicy.httpsОпциональные параметры TLS Ingress при внешней публикации (type External).
-
объектspec.exposurePolicy.https.certManagerПараметры cert-manager при режиме CertManager.
-
строкаspec.exposurePolicy.https.certManager.clusterIssuerName
Обязательный параметр
Имя кластерного ClusterIssuer cert-manager.Минимальная длина:
1
-
-
объектspec.exposurePolicy.https.customCertificateПараметры пользовательского сертификата при режиме CustomCertificate.
-
строкаspec.exposurePolicy.https.customCertificate.secretName
Обязательный параметр
Имя секрета TLS в namespace d8-system.Минимальная длина:
1
-
-
строкаspec.exposurePolicy.https.modeРежим HTTPS для внешней публикации (Disabled, CertManager, CustomCertificate или OnlyInURI).
Допустимые значения:
Disabled,CertManager,CustomCertificate,OnlyInURI
-
-
строкаspec.exposurePolicy.type
Обязательный параметр
Тип публикации точки доступа (ClusterLocal или External).Допустимые значения:
ClusterLocal,External
-
-
объектspec.modelPolicyОграничения на заказы с model.src ai-models; проверяются контроллером по фактам каталога.
-
массив строкspec.modelPolicy.allowedEndpointTypes
Обязательный параметр
Перечень разрешённых договоров API инференса на классе (Chat, Embeddings и т.д.). Обязателен и непуст: договор заказа выбирается из этого перечня, и заказ его не называет.-
строкаspec.modelPolicy.allowedEndpointTypes.Элемент массиваInferenceAPIEndpointType is the serving API taxonomy aligned with ai-models catalog facts.
Допустимые значения:
Chat,Embeddings,Rerank
-
-
массив строкspec.modelPolicy.allowedFormatsОпциональный список допустимых форматов артефакта (Safetensors, GGUF и т.д.).
-
строкаspec.modelPolicy.maxParameterCountОпциональный верхний предел размера модели (например 32B, 70B).
Шаблон:
^[0-9]+(\.[0-9]+)?[MmBb]$
-
-
строкаspec.modelStorageClassNameНеобязательное имя StorageClass для тома модели заказов этого класса. Его никто не вычисляет: это решение о том, где лежит модель, и принимает его администратор класса. При отсутствии том достаётся классу хранения кластера по умолчанию.
-
объектspec.scalingPolicyЕдинственный источник границ числа копий заказа и allow-list имён PriorityClass. Заказ границ не называет, поэтому класс без этого блока даёт своим заказам одну копию.
-
массив строкspec.scalingPolicy.allowedPriorityClassNamesИмена Kubernetes PriorityClass, которые класс предлагает своим заказам; заказ своего имени не называет, поэтому при непустом списке первый элемент и есть эффективное имя, а при пустом эффективное имя остаётся за PriorityClass кластера с globalDefault.
-
целочисленныйspec.scalingPolicy.maxReplicasМаксимальное число копий заказов этого класса.
Допустимые значения:
1 <= X -
целочисленныйspec.scalingPolicy.minReplicasМинимальное число копий заказов этого класса. Ограничение minimum 1 действует на этот пользовательский вход; вытеснение пишет границы в нагрузку заказа и может увести её в ноль.
Допустимые значения:
1 <= X
-
-
объектspec.updatePolicyСтратегия обновления рабочей нагрузки заказа.
-
строкаspec.updatePolicy.strategy
Обязательный параметр
Способ, которым переводятся копии заказа, когда платформа вправе их двигать.Допустимые значения:
RollingUpdate
-
-
-
объектstatusНаблюдаемое состояние класса сервиса инференса.
-
массив объектовstatus.conditionsУсловия проверки и готовности класса.
-
строкаstatus.conditions.lastTransitionTimeВремя последнего изменения состояния условия.
-
строкаstatus.conditions.messageЧеловекочитаемое сообщение о переходе условия.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationПоколение объекта, для которого актуально условие.
Допустимые значения:
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Тип условия (Validated, Ready).
Максимальная длина:
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.observedGenerationПоследнее поколение metadata, обработанное контроллером.
-
строкаstatus.phaseФаза жизненного цикла (Pending, Ready или Failed).
-
InferenceService
Short names: is
Scope: Namespaced
Version: v1alpha1
-
объектspecЖелаемое состояние заказа инференса.
-
строкаspec.inferenceServiceClassNameИмя кластерного InferenceServiceClass.
-
строкаspec.launchStrategyВетка скомпилированного рецепта (Latency, Throughput или Balance); по умолчанию Latency. Ветки на подавляющем большинстве железа действительно расходятся по maxModelLen (замер phase-2-4-405).
Допустимые значения:
Latency,Throughput,Balance -
объектspec.model
Обязательный параметр
Спецификация модели — объект ref (Hugging Face — name; каталог ai-models — kind и name).-
объектspec.model.authSecretRefСсылка на Secret с учётными данными Hugging Face, только на прямом пути. Артефакт записи каталога монтирует модуль ai-models со своими учётными данными, поэтому на пути каталога поле отклоняется на записи.
-
строкаspec.model.authSecretRef.keyКлюч в data Secret с учётными данными; если не задан, платформа использует «token».
-
строкаspec.model.authSecretRef.name
Обязательный параметр
Имя Secret в том же namespace.Минимальная длина:
1
-
-
строкаspec.model.parameterCountРазмер модели на прямом пути HuggingFace, и только там. Заказ через каталог ai-models берёт размер из фактов записи каталога, а поле отклоняется на записи.
Шаблон:
^[0-9]+(\.[0-9]+)?[MmBb]$ -
объектspec.model.ref
Обязательный параметр
Объект ссылки на модель — name обязателен; kind и namespace для пути ai-models.-
строкаspec.model.ref.kindВид CR каталога — Model или ClusterModel; для HuggingFace не задаётся.
Допустимые значения:
Model,ClusterModel -
строкаspec.model.ref.name
Обязательный параметр
Идентификатор модели Hugging Face или metadata.name CR каталога.Минимальная длина:
1 -
строкаspec.model.ref.namespaceОпциональный namespace для kind Model; должен совпадать с namespace заказа.
-
-
строкаspec.model.src
Обязательный параметр
Источник модели — HuggingFace или ai-models.Допустимые значения:
HuggingFace,ai-models
-
-
объектspec.resourcesОпционально сужает перечень допустимых классов устройства ускорителя. Число устройств и долю одного заказ не называет — их назначает план запуска.
-
объектspec.resources.acceleratorОпционально сужает перечень допустимых классов устройства ускорителя для заказа.
-
массив строкspec.resources.accelerator.deviceClassesПеречень имён DeviceClass, которыми заказ сужает выбор ускорителя. Эффективный перечень для плана запуска — пересечение с acceleratorPolicy.allowedDeviceClasses класса; пустое пересечение — отказ с reason ClaimDeviceMissing.
-
-
-
-
объектstatusНаблюдаемое состояние заказа инференса.
-
строкаstatus.authSecretNameИмя Secret с токеном доступа при аутентификации Token.
-
массив объектовstatus.conditionsУсловия разрешения класса, модели, готовности нагрузки заказа и готовности сервиса.
-
строкаstatus.conditions.lastTransitionTimeВремя последнего изменения состояния условия.
-
строкаstatus.conditions.messageЧеловекочитаемое сообщение о переходе условия.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationПоколение объекта, для которого актуально условие.
Допустимые значения:
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Тип условия (ClassResolved, ModelResolved, Planned, WorkloadReady, Ready, ScalingHealthy).
Максимальная длина:
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.constraintsЭффективные границы реплик и область модели каталога после проверки заказа по классу.
-
целочисленныйstatus.constraints.maxReplicasЭффективный максимум реплик; у поля два происхождения. Вне эпизода вытеснения это граница, полученная проверкой заказа против политики масштабирования его класса. Пока эпизод держит заказ донором, это граница удержания, и восстановление донора возвращает границу политики.
-
целочисленныйstatus.constraints.minReplicasЭффективный минимум реплик.
-
строкаstatus.constraints.modelScopeОбласть модели из фактов каталога (например Cluster).
-
строкаstatus.constraints.priorityClassNameЭффективное имя PriorityClass после проверки; пустое при отсутствии globalDefault кластера (числовой приоритет 0).
-
-
объектstatus.endpointОпубликованный URL API инференса.
-
булевыйstatus.endpoint.toolCallingSupportedОбъявляет, поддерживает ли разрешённый план вызов инструментов: true — план несёт toolCallParser в runtime.parameters, false — план разрешён, но без этого ключа. Поле отсутствует, пока план ещё не разрешён.
-
строкаstatus.endpoint.typeТип публикации точки доступа (ClusterLocal или External); не путать с типом API в status.model.endpointType.
-
строкаstatus.endpoint.urlHTTP(S)-адрес API инференса для клиентов.
-
-
объектstatus.modelМетаданные пути через каталог после успешной проверки заказа по классу.
-
строкаstatus.model.endpointTypeТип API инференса, выбранный платформой для заказа после проверки по классу (Chat, Embeddings и т.д.). Сам заказ тип не называет.
Допустимые значения:
Chat,Embeddings,Rerank
-
-
целочисленныйstatus.observedGenerationПоследнее поколение metadata, обработанное контроллером.
-
строкаstatus.phaseФаза жизненного цикла (Pending, Ready, Degraded или Failed).
-
объектstatus.resolvedРазмещение, по которому запущен заказ, после успешного планирования.
-
целочисленныйstatus.resolved.acceleratorMemoryGiBДоступная память ускорителя для выбранного размещения.
-
строкаstatus.resolved.acceleratorProductNameПродуктовое имя выбранного ускорителя.
-
строкаstatus.resolved.deviceClassРекомендуемый планировщиком класс устройства DRA для заявки на устройство заказа.
-
массив строкstatus.resolved.excludedDeviceClassesСписок исключённых cluster
DeviceClassCR после неудачных replan. -
строкаstatus.resolved.placementModeРежим размещения (Partition или WholeDevice).
Допустимые значения:
Partition,WholeDevice -
целочисленныйstatus.resolved.replanCountЧисло выполненных replan из-за сбоя или зависшего ResourceClaim.
-
целочисленныйДоля устройства, назначенная планом запуска этого заказа, в процентах; сто означает целое устройство. По ней владелец заказа видит, какая часть карты его, и по ней же платформа считает занятость карты соседями.
-
строкаstatus.resolved.sharingModeРежим совместного использования ускорителя (Shared или Dedicated); от режима размещения не зависит.
Допустимые значения:
Shared,Dedicated
-
-