×
描述

CSIStorageCapacity存储一次CSI GetCapacity调用的结果。对于给定的StorageClass,这描述了特定拓扑段中可用的容量。在考虑在哪里实例化新的PersistentVolumes时,可以使用此信息。

例如,这可以表示以下内容:- StorageClass“standard”在“topology.kubernetes.io/zone=us-east1”中可用“1234 GiB” - StorageClass“localssd”在“kubernetes.io/hostname=knode-abc123”中可用“10 GiB”

以下三种情况都暗示对于某种组合没有可用容量:- 不存在具有合适的拓扑和存储类名称的对象 - 这样的对象存在,但容量未设置 - 这样的对象存在,但容量为零

这些对象的生产者可以决定哪种方法更合适。

当CSI驱动程序通过CSIDriverSpec.StorageCapacity选择参与容量感知调度时,kube-scheduler会使用它们。调度程序将MaximumVolumeSize与挂起卷的请求大小进行比较,以过滤掉不合适的节点。如果MaximumVolumeSize未设置,则会回退到与精度较低的Capacity进行比较。如果这也未设置,则调度程序假设容量不足并尝试其他节点。

类型

对象

必需
  • storageClassName

规格

属性 类型 描述

apiVersion

字符串

APIVersion定义此对象表示的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

capacity

数量

capacity是CSI驱动程序在其GetCapacityResponse中针对GetCapacityRequest报告的值,该请求的拓扑和参数与之前的字段匹配。

语义当前(CSI规范1.2)定义为:可用于配置卷的存储的可用容量(以字节为单位)。如果未设置,则当前无法获得该信息。

kind

字符串

Kind是表示此对象表示的REST资源的字符串值。服务器可以从客户端提交请求的端点推断出这一点。不能更新。使用驼峰命名法。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

maximumVolumeSize

数量

maximumVolumeSize是CSI驱动程序在其GetCapacityResponse中针对GetCapacityRequest报告的值,该请求的拓扑和参数与之前的字段匹配。

自CSI规范1.4.0起,这被定义为可在CreateVolumeRequest.capacity_range.required_bytes字段中使用的最大大小,以创建与GetCapacityRequest中的参数相同的卷。Kubernetes API中的相应值为卷声明中的ResourceRequirements.Requests。

metadata

ObjectMeta

标准对象的元数据。名称没有任何特殊含义。它必须是DNS子域名(允许使用点,253个字符)。为了确保与集群上的其他CSI驱动程序不存在冲突,建议使用csisc-<uuid>、生成的名称或以唯一CSI驱动程序名称结尾的反向域名。

对象是命名空间的。

更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

nodeTopology

LabelSelector

nodeTopology 定义哪些节点可以访问已报告容量的存储。如果未设置,则集群中的任何节点都无法访问该存储。如果为空,则所有节点都可以访问该存储。此字段是不可变的。

storageClassName

字符串

storageClassName 表示已报告容量适用的 StorageClass 的名称。它必须满足与 StorageClass 对象名称相同的需求(非空,DNS 子域名)。如果该对象不再存在,则 CSIStorageCapacity 对象已过期,应由其创建者删除。此字段是不可变的。

API 端点

提供以下 API 端点:

  • /apis/storage.k8s.io/v1/csistoragecapacities

    • GET:列出或监视 CSIStorageCapacity 类型的对象

  • /apis/storage.k8s.io/v1/watch/csistoragecapacities

    • GET:监视 CSIStorageCapacity 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

  • /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities

    • DELETE:删除 CSIStorageCapacity 集合

    • GET:列出或监视 CSIStorageCapacity 类型的对象

    • POST:创建一个 CSIStorageCapacity

  • /apis/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities

    • GET:监视 CSIStorageCapacity 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

  • /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}

    • DELETE:删除一个 CSIStorageCapacity

    • GET:读取指定的 CSIStorageCapacity

    • PATCH:部分更新指定的 CSIStorageCapacity

    • PUT:替换指定的 CSIStorageCapacity

  • /apis/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities/{name}

    • GET:监视 CSIStorageCapacity 类型对象的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

/apis/storage.k8s.io/v1/csistoragecapacities

HTTP 方法

GET

描述

列出或监视 CSIStorageCapacity 类型的对象

表 1. HTTP 响应
HTTP 代码 响应体

200 - OK

CSIStorageCapacityList 模式

401 - 未授权

/apis/storage.k8s.io/v1/watch/csistoragecapacities

HTTP 方法

GET

描述

监视 CSIStorageCapacity 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

表 2. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities

HTTP 方法

DELETE

描述

删除 CSIStorageCapacity 集合

表 3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 4. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出或监视 CSIStorageCapacity 类型的对象

表 5. HTTP 响应
HTTP 代码 响应体

200 - OK

CSIStorageCapacityList 模式

401 - 未授权

HTTP 方法

POST

描述

创建一个 CSIStorageCapacity

表 6. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并且将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 7. 主体参数
参数 类型 描述

主体

CSIStorageCapacity 模式

表 8. HTTP 响应
HTTP 代码 响应体

200 - OK

CSIStorageCapacity 模式

201 - 已创建

CSIStorageCapacity 模式

202 - 已接受

CSIStorageCapacity 模式

401 - 未授权

/apis/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities

HTTP 方法

GET

描述

监视 CSIStorageCapacity 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

表 9. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}

表 10. 全局路径参数
参数 类型 描述

name

字符串

CSIStorageCapacity 的名称

HTTP 方法

DELETE

描述

删除一个 CSIStorageCapacity

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 12. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 CSIStorageCapacity

表 13. HTTP 响应
HTTP 代码 响应体

200 - OK

CSIStorageCapacity 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 CSIStorageCapacity

表 14. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并且将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 15. HTTP 响应
HTTP 代码 响应体

200 - OK

CSIStorageCapacity 模式

201 - 已创建

CSIStorageCapacity 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 CSIStorageCapacity

表 16. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并且将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为从对象中删除的每个未知字段以及遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 17. 主体参数
参数 类型 描述

主体

CSIStorageCapacity 模式

表 18. HTTP 响应
HTTP 代码 响应体

200 - OK

CSIStorageCapacity 模式

201 - 已创建

CSIStorageCapacity 模式

401 - 未授权

/apis/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities/{name}

表 19. 全局路径参数
参数 类型 描述

name

字符串

CSIStorageCapacity 的名称

HTTP 方法

GET

描述

监视 CSIStorageCapacity 类型对象的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

表 20. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权