ResourceSlice v1alpha3
apiVersion: resource.k8s.io/v1alpha3
import "k8s.io/api/resource/v1alpha3"
ResourceSlice
ResourceSlice 表示由通用驱动程序管理的类似资源池中的一个或多个资源。一个池可能跨越多个 ResourceSlice,并且构成一个池的 ResourceSlice 的确切数量由驱动程序确定。
目前,唯一支持的资源是具有属性和容量的设备。给定池中的每个设备,无论有多少 ResourceSlice,都必须具有唯一的名称。设备发布的 ResourceSlice 可能会随着时间而改变。设备的唯一标识符是元组 <驱动程序名称>、<池名称>、<设备名称>。
每当驱动程序需要更新池时,它都会递增 pool.Spec.Pool.Generation 编号,并使用新的编号和新的资源定义更新所有 ResourceSlice。使用者必须只使用具有最高代数的 ResourceSlice,并忽略所有其他 ResourceSlice。
当分配池中匹配特定条件的所有资源,或者当在几个不同的替代方案中寻找最佳解决方案时,使用者应检查池中 ResourceSlice 的数量(包含在每个 ResourceSlice 中),以确定其池视图是否完整,如果不是,则应等待,直到驱动程序完成池的更新。
对于不属于节点本地的资源,未设置节点名称。相反,驱动程序可以使用节点选择器来指定设备在何处可用。
这是一个 Alpha 类型,需要启用 DynamicResourceAllocation 特性门控。
apiVersion: resource.k8s.io/v1alpha3
kind: ResourceSlice
metadata (ObjectMeta)
标准对象元数据
spec (ResourceSliceSpec),必需
包含驱动程序发布的信息。
更改 spec 会自动递增 metadata.generation 编号。
ResourceSliceSpec
ResourceSliceSpec 包含驱动程序在一个 ResourceSlice 中发布的信息。
driver (string),必需
驱动程序标识提供容量信息的 DRA 驱动程序。字段选择器可用于仅列出具有特定驱动程序名称的 ResourceSlice 对象。
必须是 DNS 子域,并且应以驱动程序供应商拥有的 DNS 域结尾。此字段是不可变的。
pool (ResourcePool),必需
池描述此 ResourceSlice 所属的池。
ResourcePool 描述 ResourceSlice 所属的池。
pool.generation (int64),必需
代数会跟踪池随时间的变化。每当驱动程序更改池中一个或多个资源的某些内容时,它都必须更改属于该池的所有 ResourceSlice 中的代数。ResourceSlice 的使用者应仅考虑来自具有最高代数的池的资源。驱动程序可以重置代数,这对使用者来说应该没问题,前提是池中的所有 ResourceSlice 都已更新以匹配或删除。
与 ResourceSliceCount 结合使用,此机制使使用者能够检测由多个 ResourceSlice 组成且处于不完整状态的池。
pool.name (string),必需
名称用于标识池。对于节点本地设备,这通常是节点名称,但这不是必需的。
它的长度不得超过 253 个字符,并且必须由一个或多个以斜杠分隔的 DNS 子域组成。此字段是不可变的。
pool.resourceSliceCount (int64),必需
ResourceSliceCount 是此代数中池中的 ResourceSlice 总数。必须大于零。
使用者可以使用此项来检查他们是否已查看属于同一池的所有 ResourceSlice。
allNodes (boolean)
AllNodes 指示所有节点都可以访问池中的资源。
必须设置 NodeName、NodeSelector 和 AllNodes 中的一个。
devices ([]Device)
原子性:在合并期间将被替换
设备列出此池中的部分或所有设备。
不得超过 128 个条目。
设备表示一个可以基于其属性进行选择的单独硬件实例。除了名称之外,必须设置一个字段。
devices.name (string),必需
名称是池中驱动程序管理的所有设备中的唯一标识符。它必须是 DNS 标签。
devices.basic (BasicDevice)
Basic 定义一个设备实例。
devices.basic.attributes (map[string]DeviceAttribute)
属性定义此设备的属性集。每个属性的名称在该集合中必须唯一。
属性和容量的最大组合数为 32。
devices.basic.attributes.bool (boolean)
BoolValue 是一个 true/false 值。
devices.basic.attributes.int (int64)
IntValue 是一个数字。
devices.basic.attributes.string (string)
StringValue 是一个字符串。长度不得超过 64 个字符。
devices.basic.attributes.version (string)
VersionValue 是根据 semver.org 规范 2.0.0 的语义版本。长度不得超过 64 个字符。
devices.basic.capacity (map[string]Quantity)
容量定义此设备的容量集。每个容量的名称在该集合中必须唯一。
属性和容量的最大组合数为 32。
nodeName (string)
NodeName 标识提供此池中资源的节点。字段选择器可用于仅列出属于特定节点的 ResourceSlice 对象。
此字段可用于限制从节点访问具有相同节点名称的 ResourceSlice。它还向自动扩缩器指示,添加与某些旧节点类型相同的新节点也可能会使新资源可用。
必须设置 NodeName、NodeSelector 和 AllNodes 中的一个。此字段是不可变的。
nodeSelector (NodeSelector)
当该池不限于单个节点时,NodeSelector 定义哪些节点可以访问池中的资源。
必须精确使用一个术语。
必须设置 NodeName、NodeSelector 和 AllNodes 中的一个。
节点选择器表示一组节点上一个或多个标签查询的结果的并集;也就是说,它表示由节点选择器术语表示的选择器的 OR。
nodeSelector.nodeSelectorTerms ([]NodeSelectorTerm),必需
原子性:在合并期间将被替换
必需。节点选择器术语的列表。这些术语是 ORed。
空或空的节点选择器项不匹配任何对象。它们的要求是AND运算。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的一个子集。
nodeSelector.nodeSelectorTerms.matchExpressions ([]NodeSelectorRequirement)
原子性:在合并期间将被替换
按节点的标签列出的节点选择器要求列表。
nodeSelector.nodeSelectorTerms.matchFields ([]NodeSelectorRequirement)
原子性:在合并期间将被替换
按节点的字段列出的节点选择器要求列表。
ResourceSliceList
ResourceSliceList 是 ResourceSlice 的集合。
apiVersion: resource.k8s.io/v1alpha3
kind: ResourceSliceList
items ([]ResourceSlice), 必选
Items 是资源 ResourceSlice 的列表。
metadata (ListMeta)
标准列表元数据
操作
get
读取指定的 ResourceSlice
HTTP 请求
GET /apis/resource.k8s.io/v1alpha3/resourceslices/{name}
参数
name (在路径中): 字符串, 必选
ResourceSlice 的名称
pretty (在查询中): 字符串
响应
200 (ResourceSlice): OK
401: 未授权
list
列出或监视 ResourceSlice 类型的对象
HTTP 请求
GET /apis/resource.k8s.io/v1alpha3/resourceslices
参数
allowWatchBookmarks (在查询中): 布尔值
continue (在查询中): 字符串
fieldSelector (在查询中): 字符串
labelSelector (在查询中): 字符串
limit (在查询中): 整数
pretty (在查询中): 字符串
resourceVersion (在查询中): 字符串
resourceVersionMatch (在查询中): 字符串
sendInitialEvents (在查询中): 布尔值
timeoutSeconds (在查询中): 整数
watch (在查询中): 布尔值
响应
200 (ResourceSliceList): OK
401: 未授权
create
创建一个 ResourceSlice
HTTP 请求
POST /apis/resource.k8s.io/v1alpha3/resourceslices
参数
body: ResourceSlice, 必选
dryRun (在查询中): 字符串
fieldManager (在查询中): 字符串
fieldValidation (在查询中): 字符串
pretty (在查询中): 字符串
响应
200 (ResourceSlice): OK
201 (ResourceSlice): 已创建
202 (ResourceSlice): 已接受
401: 未授权
update
替换指定的 ResourceSlice
HTTP 请求
PUT /apis/resource.k8s.io/v1alpha3/resourceslices/{name}
参数
name (在路径中): 字符串, 必选
ResourceSlice 的名称
body: ResourceSlice, 必选
dryRun (在查询中): 字符串
fieldManager (在查询中): 字符串
fieldValidation (在查询中): 字符串
pretty (在查询中): 字符串
响应
200 (ResourceSlice): OK
201 (ResourceSlice): 已创建
401: 未授权
patch
部分更新指定的 ResourceSlice
HTTP 请求
PATCH /apis/resource.k8s.io/v1alpha3/resourceslices/{name}
参数
name (在路径中): 字符串, 必选
ResourceSlice 的名称
body: Patch, 必选
dryRun (在查询中): 字符串
fieldManager (在查询中): 字符串
fieldValidation (在查询中): 字符串
force (在查询中): 布尔值
pretty (在查询中): 字符串
响应
200 (ResourceSlice): OK
201 (ResourceSlice): 已创建
401: 未授权
delete
删除一个 ResourceSlice
HTTP 请求
DELETE /apis/resource.k8s.io/v1alpha3/resourceslices/{name}
参数
name (在路径中): 字符串, 必选
ResourceSlice 的名称
body: DeleteOptions
dryRun (在查询中): 字符串
gracePeriodSeconds (在查询中): 整数
pretty (在查询中): 字符串
propagationPolicy (在查询中): 字符串
响应
200 (ResourceSlice): OK
202 (ResourceSlice): 已接受
401: 未授权
deletecollection
删除 ResourceSlice 的集合
HTTP 请求
DELETE /apis/resource.k8s.io/v1alpha3/resourceslices
参数
body: DeleteOptions
continue (在查询中): 字符串
dryRun (在查询中): 字符串
fieldSelector (在查询中): 字符串
gracePeriodSeconds (在查询中): 整数
labelSelector (在查询中): 字符串
limit (在查询中): 整数
pretty (在查询中): 字符串
propagationPolicy (在查询中): 字符串
resourceVersion (在查询中): 字符串
resourceVersionMatch (在查询中): 字符串
sendInitialEvents (在查询中): 布尔值
timeoutSeconds (在查询中): 整数
响应
200 (Status): OK
401: 未授权
此页面是自动生成的。
如果您计划报告此页面的问题,请在您的问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。