ResourceClaim v1alpha2
apiVersion: resource.k8s.io/v1alpha2
import "k8s.io/api/resource/v1alpha2"
ResourceClaim
ResourceClaim описывает, какие ресурсы необходимы потребителю ресурсов. Его состояние отслеживает, был ли ресурс выделен, и каковы полученные атрибуты.
Это тип alpha и требует включения функции DynamicResourceAllocation.
-
apiVersion: resource.k8s.io/v1alpha2
-
kind: ResourceClaim
-
metadata (ObjectMeta)
Стандартные метаданные объекта
-
spec (ResourceClaimSpec), необходимо
Spec описывает желаемые атрибуты ресурса, который затем нужно выделить. Его можно задать только один раз при создании ResourceClaim.
-
status (ResourceClaimStatus)
Status описывает, доступен ли ресурс и с какими атрибутами.
ResourceClaimSpec
ResourceClaimSpec определяет, как ресурс должен быть выделен.
-
resourceClassName (строка), необходимо
ResourceClassName ссылается на драйвер и дополнительные параметры по имени ResourceClass, который был создан в рамках развертывания драйвера.
-
allocationMode (строка)
Выделение может начаться немедленно или когда Pod хочет использовать ресурс. "WaitForFirstConsumer" — значение по умолчанию.
-
parametersRef (ResourceClaimParametersReference)
ParametersRef ссылается на отдельный объект с произвольными параметрами, которые будут использованы драйвером при выделении ресурса для запроса.
Объект должен находиться в том же пространстве имен, что и ResourceClaim.
ResourceClaimParametersReference содержит достаточную информацию, чтобы найти параметры для ResourceClaim. Объект должен находиться в том же пространстве имен, что и ResourceClaim.
-
parametersRef.kind (строка), необходимо
Kind — тип ссылаемого ресурса. Это то же значение, что и в метаданных объекта параметра, например, "ConfigMap".
-
parametersRef.name (строка), необходимо
Name — имя ссылаемого ресурса.
-
parametersRef.apiGroup (строка)
APIGroup — группа ссылаемого ресурса. Она пустая для основного API. Это соответствует группе в APIVersion, которая используется при создании ресурсов.
-
ResourceClaimStatus
ResourceClaimStatus отслеживает, был ли ресурс выделен и каковы полученные атрибуты.
-
allocation (AllocationResult)
Allocation устанавливается драйвером ресурса после успешного выделения ресурса или набора ресурсов. Если это не указано, ресурсы еще не выделены.
AllocationResult содержит атрибуты выделенного ресурса.
-
allocation.availableOnNodes (NodeSelector)
Это поле будет установлено драйвером ресурса после выделения ресурса, чтобы сообщить планировщику, где он может запланировать Pod, использующие ResourceClaim.
Установка этого поля необязательна. Если null, ресурс доступен везде.
Селектор узлов представляет собой объединение результатов одного или нескольких запросов меток на наборе узлов; то есть, он представляет собой ИЛИ селекторов, представленных узлами селекторных терминов.
-
allocation.availableOnNodes.nodeSelectorTerms ([]NodeSelectorTerm), необходимо
Необходимо. Список узловых селекторных терминов. Условия — ИЛИ.
Null или пустой селекторный термин узла не соответствует ни одному объекту. Требования к ним — И. Тип TopologySelectorTerm реализует подмножество NodeSelectorTerm.
-
allocation.availableOnNodes.nodeSelectorTerms.matchExpressions ([]NodeSelectorRequirement)
Список требований селектора узлов по меткам узла.
-
allocation.availableOnNodes.nodeSelectorTerms.matchFields ([]NodeSelectorRequirement)
Список требований селектора узлов по полям узла.
-
-
-
allocation.resourceHandles ([]ResourceHandle)
Атомарно: будет заменено во время слияния
ResourceHandles содержат состояние, связанное с выделением, которое должно поддерживаться на протяжении всего жизненного цикла запроса. Каждый ResourceHandle содержит данные, которые должны быть переданы определенному плагину kubelet, как только он окажется на узле. Эти данные возвращаются драйвером после успешного выделения и являются непрозрачными для Kubernetes. Документация драйвера может объяснить пользователям, как интерпретировать эти данные при необходимости.
Установка этого поля необязательна. Максимальный размер — 32 записи. Если null (или пусто), предполагается, что это выделение будет обработано одним плагином kubelet без прикрепленных данных ResourceHandle. Имя вызываемого плагина kubelet будет совпадать с именем DriverName, установленным в ResourceClaimStatus, в котором вставлен этот AllocationResult.
ResourceHandle содержит непрозрачные данные ресурса для обработки определенным плагином kubelet.
-
allocation.resourceHandles.data (строка)
Data содержит непрозрачные данные, связанные с этим ResourceHandle. Он устанавливается контроллером компонента драйвера ресурса, имя которого соответствует DriverName, установленному в ResourceClaimStatus, в котором вставлен этот ResourceHandle. Он устанавливается во время выделения и предназначен для обработки плагином kubelet, имя которого соответствует DriverName в этом ResourceHandle.
Максимальный размер этого поля — 16 КБ. Это может быть увеличено в будущем, но не уменьшено.
-
allocation.resourceHandles.driverName (строка)
DriverName указывает имя драйвера ресурса, плагин kubelet которого должен быть вызван для обработки данных этого ResourceHandle, как только он окажется на узле. Это может отличаться от DriverName, установленного в ResourceClaimStatus, в котором вставлен этот ResourceHandle.
-
-
allocation.shareable (логический)
Shareable определяет, поддерживает ли ресурс более одного потребителя одновременно.
-
-
deallocationRequested (логический)
DeallocationRequested указывает, что ResourceClaim должен быть освобожден.
Тогда драйвер должен освободить этот запрос и сбросить поле вместе с очисткой поля Allocation.
Пока DeallocationRequested установлен, новые потребители не могут быть добавлены в ReservedFor.
-
driverName (строка)
DriverName — копия имени драйвера из ResourceClass на момент начала выделения.
-
reservedFor ([]ResourceClaimConsumerReference)
Массив: уникальные значения по ключу uid будут сохранены во время слияния
ReservedFor указывает, какие сущности в настоящее время разрешено использовать запрос. Pod, который ссылается на ResourceClaim, который не зарезервирован для этого Pod, не будет запущен.
Может быть не более 32 таких резервирований. Это может быть увеличено в будущем, но не уменьшено.
ResourceClaimConsumerReference содержит достаточную информацию, чтобы найти потребителя ResourceClaim. Пользователь должен быть ресурсом в том же пространстве имен, что и ResourceClaim.
-
reservedFor.name (строка), необходимо
Name — имя ссылаемого ресурса.
-
reservedFor.resource (строка), необходимо
Resource — тип ссылаемого ресурса, например, "pods".
-
reservedFor.uid (строка), необходимо
UID идентифицирует ровно одну итерацию ресурса.
-
reservedFor.apiGroup (строка)
APIGroup — группа ссылаемого ресурса. Она пустая для основного API. Это соответствует группе в APIVersion, которая используется при создании ресурсов.
-
ResourceClaimList
ResourceClaimList — коллекция запросов.
-
apiVersion: resource.k8s.io/v1alpha2
-
kind: ResourceClaimList
-
metadata (ListMeta)
Стандартные метаданные списка
-
items ([]ResourceClaim), необходимо
Items — список запросов на ресурсы.
© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-27.docs.kubernetes.io/docs/reference/kubernetes-api/workload-resources/resource-claim-v1alpha2/