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