配置和存储资源
1 - ConfigMap
apiVersion: v1
import "k8s.io/api/core/v1"
ConfigMap
ConfigMap 包含供 Pod 使用的配置数据。
apiVersion: v1
kind: ConfigMap
metadata (ObjectMeta)
标准的对象元数据。 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
binaryData (map[string][]byte)
binaryData 包含二进制数据。 每个键必须由字母、数字、“-”、“_” 或 “.” 组成。 binaryData 可以包含不在 UTF-8 范围中的字节序列。 binaryData 中存储的键不得与 data 字段中的键重叠,这在验证过程中是强制要求。 使用此字段需要 apiserver 和 kubelet 的版本高于 1.10。
data (map[string]string)
data 包含配置数据。 每个键必须由字母、数字、“-”、“_” 或 “.” 组成。 如果值包含非 UTF-8 字节序列,则必须使用 binaryData 字段。 data 中存储的键不得与 binaryData 字段中的键重叠,这在验证过程中是强制要求。
immutable (boolean)
如果 immutable 设为 true, 则确保不会更新 ConfigMap 中存储的数据(只能修改对象元数据)。 如果未设为 true,则可以随时修改此字段。 默认为 nil。
ConfigMapList
ConfigMapList 是包含 ConfigMap 对象列表的资源。
apiVersion: v1
kind: ConfigMapList
metadata (ListMeta)
更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]ConfigMap),必需
items 是 ConfigMap 的列表。
操作
get
读取指定的 ConfigMap
HTTP 请求
GET /api/v1/namespaces/{namespace}/configmaps/{name}
参数
响应
200 (ConfigMap): OK
401: Unauthorized
list
列出或观测类别为 ConfigMap 的对象
HTTP 请求
GET /api/v1/namespaces/{namespace}/configmaps
参数
namespace (路径参数): string,必需
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (ConfigMapList): OK
401: Unauthorized
list
列出或观测类别为 ConfigMap 的对象
HTTP 请求
GET /api/v1/configmaps
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (ConfigMapList): OK
401: Unauthorized
create
创建 ConfigMap
HTTP 请求
POST /api/v1/namespaces/{namespace}/configmaps
参数
namespace (路径参数): string,必需
body: ConfigMap,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (ConfigMap): OK
201 (ConfigMap): Created
202 (ConfigMap): Accepted
401: Unauthorized
update
替换指定的 ConfigMap
HTTP 请求
PUT /api/v1/namespaces/{namespace}/configmaps/{name}
参数
name (路径参数): string,必需
ConfigMap 的名称
namespace (路径参数): string,必需
body: ConfigMap,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (ConfigMap): OK
201 (ConfigMap): Created
401: Unauthorized
patch
部分更新指定的 ConfigMap
HTTP 请求
PATCH /api/v1/namespaces/{namespace}/configmaps/{name}
参数
name (路径参数): string,必需
ConfigMap 的名称
namespace (路径参数): string,必需
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (ConfigMap): OK
201 (ConfigMap): Created
401: Unauthorized
delete
删除 ConfigMap
HTTP 请求
DELETE /api/v1/namespaces/{namespace}/configmaps/{name}
参数
name (路径参数): string,必需
ConfigMap 的名称
namespace (路径参数): string,必需
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
删除 ConfigMap 的集合
HTTP 请求
DELETE /api/v1/namespaces/{namespace}/configmaps
参数
namespace (路径参数): string,必需
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
2 - Secret
apiVersion: v1
import "k8s.io/api/core/v1"
Secret
Secret 包含某些类别的秘密数据。 data 字段值的总字节必须小于 MaxSecretSize 字节。
apiVersion: v1
kind: Secret
metadata (ObjectMeta)
标准的对象元数据。 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
data (map[string][]byte)
data 包含秘密数据。 每个键必须由字母、数字、“-”、“_” 或 “.” 组成。 秘密数据的序列化格式是 base64 编码的字符串,表示此处的任意(可能是非字符串)数据值。 请参阅 https://tools.ietf.org/html/rfc4648#section-4
immutable (boolean)
如果 immutable 设为 true,则确保不会更新 Secret 中存储的数据(只能修改对象元数据)。 如果未设为 true,则可以随时修改此字段。 默认为 nil。
stringData (map[string]string)
stringData 允许指定字符串格式的非二进制秘密数据。 为了方便起见,它作为只写输入字段提供。 写入时将所有键和值合并到 data 字段,且覆盖任何现有的值。 从 API 读取时绝不会输出 stringData 字段。
type (string)
用于满足程序化方式处理秘密数据。 更多信息: https://kubernetes.io/zh-cn/docs/concepts/configuration/secret/#secret-types
SecretList
SecretList 是 Secret 的列表。
apiVersion: v1
kind: SecretList
metadata (ListMeta)
标准的列表元数据。 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]Secret),必需
items 是 Secret 对象的列表。 更多信息: https://kubernetes.io/zh-cn/docs/concepts/configuration/secret
操作
get
读取指定的 Secret
HTTP 请求
GET /api/v1/namespaces/{namespace}/secrets/{name}
参数
响应
200 (Secret): OK
401: Unauthorized
list
列出或观测类别为 Secret 的对象
HTTP 请求
GET /api/v1/namespaces/{namespace}/secrets
参数
namespace (路径参数): string,必需
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (SecretList): OK
401: Unauthorized
list
列出或观测类别为 Secret 的对象
HTTP 请求
GET /api/v1/secrets
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (SecretList): OK
401: Unauthorized
create
创建 Secret
HTTP 请求
POST /api/v1/namespaces/{namespace}/secrets
参数
namespace (路径参数): string,必需
body: Secret,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (Secret): OK
201 (Secret): Created
202 (Secret): Accepted
401: Unauthorized
update
替换指定的 Secret
HTTP 请求
PUT /api/v1/namespaces/{namespace}/secrets/{name}
参数
name (路径参数): string,必需
Secret 的名称
namespace (路径参数): string,必需
body: Secret,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (Secret): OK
201 (Secret): Created
401: Unauthorized
patch
部分更新指定的 Secret
HTTP 请求
PATCH /api/v1/namespaces/{namespace}/secrets/{name}
参数
name (路径参数): string,必需
Secret 的名称
namespace (路径参数): string,必需
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (Secret): OK
201 (Secret): Created
401: Unauthorized
delete
删除 Secret
HTTP 请求
DELETE /api/v1/namespaces/{namespace}/secrets/{name}
参数
name (路径参数): string,必需
Secret 的名称
namespace (路径参数): string,必需
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
删除 Secret 的集合
HTTP 请求
DELETE /api/v1/namespaces/{namespace}/secrets
参数
namespace (路径参数): string,必需
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
3 - CSIDriver
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSIDriver
CSIDriver 抓取集群上部署的容器存储接口(CSI)卷驱动有关的信息。 Kubernetes 挂接/解除挂接控制器使用此对象来决定是否需要挂接。 Kubelet 使用此对象决定挂载时是否需要传递 Pod 信息。 CSIDriver 对象未划分命名空间。
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata (ObjectMeta)
标准的对象元数据。
metadata.name
表示此对象引用的 CSI 驱动的名称; 它必须与该驱动的 CSI GetPluginName() 调用返回的名称相同。 驱动名称不得超过 63 个字符,以字母、数字([a-z0-9A-Z])开头和结尾, 中间可包含短划线(-)、英文句点(.)、字母和数字。 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadataspec (CSIDriverSpec),必需
spec 表示 CSI 驱动的规约。
CSIDriverSpec
CSIDriverSpec 是 CSIDriver 的规约。
attachRequired (boolean)
attachRequired 表示这个 CSI 卷驱动需要挂接操作 (因为它实现了 CSI ControllerPublishVolume() 方法), Kubernetes 挂接/解除挂接控制器应调用挂接卷接口, 以检查卷挂接(volumeattachment)状态并在继续挂载之前等待卷被挂接。 CSI 外部挂接器与 CSI 卷驱动配合使用,并在挂接操作完成时更新 volumeattachment 状态。 如果 CSIDriverRegistry 特性门控被启用且此值指定为 false,将跳过挂接操作。 否则将调用挂接操作。
此字段不可变更。
fsGroupPolicy (string)
fsGroupPolicy 定义底层卷是否支持在挂载之前更改卷的所有权和权限。 有关更多详细信息,请参考特定的 FSGroupPolicy 值。
此字段在 Kubernetes 1.29 版本之前不可变更,现在可变更。
默认为 ReadWriteOnceWithFSType,这会检查每个卷,以决定 Kubernetes 是否应修改卷的所有权和权限。 采用默认策略时,如果定义了 fstype 且卷的访问模式包含 ReadWriteOnce,将仅应用定义的 fsGroup。
podInfoOnMount (boolean)
如果 podInfoOnMount 设为 true,则表示在挂载操作期间这个 CSI 卷驱动需要更多的 Pod 信息(例如 podName 和 podUID 等)。 如果设为 false,则挂载时将不传递 Pod 信息。默认为 false。
CSI 驱动将 podInfoOnMount 指定为驱动部署的一部分。 如果为 true,Kubelet 将在 CSI NodePublishVolume() 调用中作为 VolumeContext 传递 Pod 信息。 CSI 驱动负责解析和校验作为 VolumeContext 传递进来的信息。
如果 podInfoOnMount 设为 true,将传递以下 VolumeConext。 此列表可能变大,但将使用前缀。
- "csi.storage.k8s.io/pod.name": pod.name
- "csi.storage.k8s.io/pod.namespace": pod.namespace
- "csi.storage.k8s.io/pod.uid": string(pod.UID)
- "csi.storage.k8s.io/ephemeral": 如果此卷是 CSIVolumeSource 定义的一个临时内联卷,则为 “true”,否则为 “false”
“csi.storage.k8s.io/ephemeral” 是 Kubernetes 1.16 中一个新的功能特性。 只有同时支持 “Persistent” 和 “Ephemeral” VolumeLifecycleMode 的驱动,此字段才是必需的。 其他驱动可以保持禁用 Pod 信息或忽略此字段。 由于 Kubernetes 1.15 不支持此字段,所以在这类集群上部署驱动时,只能支持一种模式。 该部署就决定了是哪种模式,例如通过驱动的命令行参数。
此字段在 Kubernetes 1.29 版本之前不可变更,现在可变更。
requiresRepublish (boolean)
requiresRepublish 表示 CSI 驱动想要
NodePublishVolume
被周期性地调用, 以反映已挂载卷中的任何可能的变化。 此字段默认为 false。注:成功完成对 NodePublishVolume 的初始调用后,对 NodePublishVolume 的后续调用只应更新卷的内容。 新的挂载点将不会被运行的容器察觉。
seLinuxMount (boolean)
seLinuxMount 指定 CSI 驱动是否支持 "-o context" 挂载选项。
当值为 “true” 时,CSI 驱动必须确保该 CSI 驱动提供的所有卷可以分别用不同的
-o context
选项进行挂载。 这对于将卷作为块设备上的文件系统或作为独立共享卷提供的存储后端来说是典型的方法。 当 Kubernetes 挂载在 Pod 中使用的已显式设置 SELinux 上下文的 ReadWriteOncePod 卷时, 将使用 "-o context=xyz" 挂载选项调用 NodeStage / NodePublish。 未来可能会扩展到其他的卷访问模式(AccessModes)。在任何情况下,Kubernetes 都会确保该卷仅使用同一 SELinux 上下文进行挂载。当值为 “false” 时,Kubernetes 不会将任何特殊的 SELinux 挂载选项传递给驱动。 这通常用于代表更大共享文件系统的子目录的卷。
默认为 “false”。
storageCapacity (boolean)
如果设为 true,则 storageCapacity 表示 CSI 卷驱动希望 Pod 调度时考虑存储容量, 驱动部署将通过创建包含容量信息的 CSIStorageCapacity 对象来报告该存储容量。
部署驱动时可以立即启用这个检查。 这种情况下,只有此驱动部署已发布某些合适的 CSIStorageCapacity 对象, 才会继续制备新的卷,然后进行绑定。
换言之,可以在未设置此字段或此字段为 false 的情况下部署驱动, 并且可以在发布存储容量信息后再修改此字段。
此字段在 Kubernetes 1.22 及更早版本中不可变更,但现在可以变更。
tokenRequests ([]TokenRequest)
原子性:将在合并期间被替换
tokenRequests 表示 CSI 驱动需要供挂载卷所用的 Pod 的服务帐户令牌,进行必要的鉴权。 Kubelet 将在 CSI NodePublishVolume 调用中传递 VolumeContext 中的令牌。 CSI 驱动应解析和校验以下 VolumeContext:
"csi.storage.k8s.io/serviceAccount.tokens": { "<audience>": { "token": <token>, "expirationTimestamp": <expiration timestamp in RFC3339>, }, ... }
注:每个 tokenRequest 中的受众应该不同,且最多有一个令牌是空字符串。 要在令牌过期后接收一个新的令牌,requiresRepublish 可用于周期性地触发 NodePublishVolume。
- tokenRequests.audience (string),必需
audience 是 “TokenRequestSpec” 中令牌的目标受众。 它默认为 kube apiserver 的受众。
tokenRequests.expirationSeconds (int64)
expirationSeconds 是 “TokenRequestSpec” 中令牌的有效期。 它具有与 “TokenRequestSpec” 中 “expirationSeconds” 相同的默认值。
volumeLifecycleModes ([]string)
集合:唯一值将在合并期间被保留
volumeLifecycleModes 定义这个 CSI 卷驱动支持哪种类别的卷。 如果列表为空,则默认值为 “Persistent”,这是 CSI 规范定义的用法, 并通过常用的 PV/PVC 机制在 Kubernetes 中实现。
另一种模式是 “Ephemeral”。 在这种模式下,在 Pod 规约中用 CSIVolumeSource 以内联方式定义卷,其生命周期与该 Pod 的生命周期相关联。 驱动必须感知到这一点,因为只有针对这种卷才会接收到 NodePublishVolume 调用。
有关实现此模式的更多信息,请参阅 https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html。 驱动可以支持其中一种或多种模式,将来可能会添加更多模式。
此字段处于 Beta 阶段。此字段不可变更。
CSIDriverList
CSIDriverList 是 CSIDriver 对象的集合。
apiVersion: storage.k8s.io/v1
kind: CSIDriverList
metadata (ListMeta)
标准的列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]CSIDriver),必需
items 是 CSIDriver 的列表。
操作
get
读取指定的 CSIDriver
HTTP 请求
GET /apis/storage.k8s.io/v1/csidrivers/{name}
参数
name (路径参数): string,必需
CSIDriver 的名称。
pretty (查询参数): string
响应
200 (CSIDriver): OK
401: Unauthorized
list
列出或观测类别为 CSIDriver 的对象
HTTP 请求
GET /apis/storage.k8s.io/v1/csidrivers
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (CSIDriverList): OK
401: Unauthorized
create
创建 CSIDriver
HTTP 请求
POST /apis/storage.k8s.io/v1/csidrivers
参数
body: CSIDriver,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (CSIDriver): OK
201 (CSIDriver): Created
202 (CSIDriver): Accepted
401: Unauthorized
update
替换指定的 CSIDriver
HTTP 请求
PUT /apis/storage.k8s.io/v1/csidrivers/{name}
参数
name (路径参数): string,必需
CSIDriver 的名称。
body: CSIDriver,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (CSIDriver): OK
201 (CSIDriver): Created
401: Unauthorized
patch
部分更新指定的 CSIDriver
HTTP 请求
PATCH /apis/storage.k8s.io/v1/csidrivers/{name}
参数
name (路径参数): string,必需
CSIDriver 的名称。
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (CSIDriver): OK
201 (CSIDriver): Created
401: Unauthorized
delete
删除 CSIDriver
HTTP 请求
DELETE /apis/storage.k8s.io/v1/csidrivers/{name}
参数
name (路径参数): string,必需
CSIDriver 的名称。
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (CSIDriver): OK
202 (CSIDriver): Accepted
401: Unauthorized
deletecollection
删除 CSIDriver 的集合
HTTP 请求
DELETE /apis/storage.k8s.io/v1/csidrivers
参数
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
4 - CSINode
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSINode
CSINode 包含节点上安装的所有 CSI 驱动有关的信息。CSI 驱动不需要直接创建 CSINode 对象。 只要这些驱动使用 node-driver-registrar 边车容器,kubelet 就会自动为 CSI 驱动填充 CSINode 对象, 作为 kubelet 插件注册操作的一部分。CSINode 的名称与节点名称相同。 如果不存在此对象,则说明该节点上没有可用的 CSI 驱动或 Kubelet 版本太低无法创建该对象。 CSINode 包含指向相应节点对象的 OwnerReference。
apiVersion: storage.k8s.io/v1
kind: CSINode
metadata (ObjectMeta)
标准的对象元数据。metadata.name 必须是 Kubernetes 节点的名称。
spec (CSINodeSpec),必需
spec 是 CSINode 的规约。
CSINodeSpec
CSINodeSpec 包含一个节点上安装的所有 CSI 驱动规约有关的信息。
drivers ([]CSINodeDriver),必需
补丁策略:按照键
name
合并映射:键
name
的唯一值将在合并过程中保留drivers 是节点上存在的所有 CSI 驱动的信息列表。如果列表中的所有驱动均被卸载,则此字段可以为空。
CSINodeDriver 包含一个节点上安装的一个 CSI 驱动规约有关的信息。
drivers.name (string),必需
name 表示该对象引用的 CSI 驱动的名称。此字段值必须是针对该驱动由 CSI GetPluginName() 调用返回的相同名称。
drivers.nodeID (string),必需
从驱动角度来看,这是节点的 nodeID。 对于未与节点共享相同命名法的存储系统,此字段使得 Kubernetes 能够与之进行通信。 例如,Kubernetes 可能将给定节点视为 "node1",但存储系统可以将同一节点视为 "nodeA"。 当 Kubernetes 向存储系统发出一条命令将一个卷挂接到特定的节点时, 它可以藉此字段使用存储系统所理解的 ID 引用节点名称,例如使用 “nodeA” 而不是 “node1”。 此字段是必需的。
drivers.allocatable (VolumeNodeResources)
allocatable 表示一个节点上可供调度的卷资源。此字段处于 beta 阶段。
VolumeNodeResources 是调度卷时所用的一组资源限制。
drivers.allocatable.count (int32)
这是一个节点上可使用的、由 CSI 驱动管理的独立卷个数的上限。 挂接并挂载到一个节点上的卷被视为被使用一次,不是两次。 相同的规则适用于同一个节点上多个 Pod 之间共享的同一个卷。 如果未指定此字段,则该节点上支持的卷数量是无限的。
drivers.topologyKeys ([]string)
原子性:合并期间将被替换
topologyKeys 是驱动支持的键的列表。 在集群上初始化一个驱动时,该驱动将提供一组自己理解的拓扑键 (例如 “company.com/zone”、“company.com/region”)。 在一个节点上初始化一个驱动时,该驱动将提供相同的拓扑键和值。 Kubelet 将在其自己的节点对象上将这些拓扑键暴露为标签。 当 Kubernetes 进行拓扑感知的制备时,可以使用此列表决定应从节点对象中检索哪些标签并传回驱动。 不同的节点可以使用不同的拓扑键。 如果驱动不支持拓扑,则此字段可以为空。
CSINodeList
CSINodeList 是 CSINode 对象的集合。
apiVersion: storage.k8s.io/v1
kind: CSINodeList
metadata (ListMeta)
标准的列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]CSINode),必需
items 是 CSINode 的列表。
操作
get
读取指定的 CSINode
HTTP 请求
GET /apis/storage.k8s.io/v1/csinodes/{name}
参数
name (路径参数): string,必需
CSINode 的名称
pretty (查询参数): string
响应
200 (CSINode): OK
401: Unauthorized
list
列出或观测类别为 CSINode 的对象
HTTP 请求
GET /apis/storage.k8s.io/v1/csinodes
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (CSINodeList): OK
401: Unauthorized
create
创建 CSINode
HTTP 请求
POST /apis/storage.k8s.io/v1/csinodes
参数
body: CSINode,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (CSINode): OK
201 (CSINode): Created
202 (CSINode): Accepted
401: Unauthorized
update
替换指定的 CSINode
HTTP 请求
PUT /apis/storage.k8s.io/v1/csinodes/{name}
参数
name (路径参数): string,必需
CSINode 的名称
body: CSINode,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (CSINode): OK
201 (CSINode): Created
401: Unauthorized
patch
部分更新指定的 CSINode
HTTP 请求
PATCH /apis/storage.k8s.io/v1/csinodes/{name}
参数
name (路径参数): string,必需
CSINode 的名称
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (CSINode): OK
201 (CSINode): Created
401: Unauthorized
delete
删除 CSINode
HTTP 请求
DELETE /apis/storage.k8s.io/v1/csinodes/{name}
参数
name (路径参数): string,必需
CSINode 的名称
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (CSINode): OK
202 (CSINode): Accepted
401: Unauthorized
deletecollection
删除 CSINode 的集合
HTTP 请求
DELETE /apis/storage.k8s.io/v1/csinodes
参数
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
5 - CSIStorageCapacity
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSIStorageCapacity
CSIStorageCapacity 存储一个 CSI GetCapacity 调用的结果。 对于给定的 StorageClass,此结构描述了特定拓扑段中可用的容量。 当考虑在哪里实例化新的 PersistentVolume 时可以使用此项。
例如,此结构可以描述如下内容:
- “standard” 的 StorageClass 容量为 “1234 GiB”,可用于 “topology.kubernetes.io/zone=us-east1”
- “localssd” 的 StorageClass 容量为 “10 GiB”,可用于 “kubernetes.io/hostname=knode-abc123”
以下三种情况均暗示了某些组合没有可用的容量:
- 不存在拓扑和存储类名称合适的对象
- 这种对象存在,但容量未设置
- 这种对象存在,但容量为零
这些对象的制作方可以决定哪种方法更合适。
当 CSI 驱动选择使用 CSIDriverSpec.StorageCapacity 进行容量感知调度时,kube-scheduler 会使用这些对象。 该调度器将 MaximumVolumeSize 与 pending 卷的请求大小进行比较,以过滤掉不合适的节点。 如果未设置 MaximumVolumeSize,则回退为与不太精确的容量(Capacity)进行比较。 如果还是未设置,则该调度器假定容量不足并尝试某些其他节点。
apiVersion: storage.k8s.io/v1
kind: CSIStorageCapacity
metadata (ObjectMeta)
标准的对象元数据。 此名称没有特定的含义。 它必须是 DNS 子域名(允许英文句点,最多 253 个字符)。 为了确保与集群上的其他 CSI 驱动没有冲突,建议使用一个生成的名称 csisc-<uuid>, 或使用以唯一 CSI 驱动名称结尾的反向域名。
这些对象是有命名空间的。
更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
storageClassName (string),必需
storageClassName 是已报告容量所对应的 StorageClass 的名称。 它必须满足与 StorageClass 对象名称相同的要求(非空,DNS 子域名)。 如果该对象不再存在,则 CSIStorageCapacity 对象将被废弃且应由创建者移除。 此字段不可变更。
capacity (Quantity)
capacity 是 CSI 驱动在其 GetCapacityResponse 中为 GetCapacityRequest 报告的值,其拓扑和参数与之前的字段匹配。
该语义目前(CSI 规范 1.2)定义为:可用于制备卷的可用存储容量(单位为字节)。 如果未设置,则该信息目前不可用。
maximumVolumeSize (Quantity)
maximumVolumeSize 是 CSI 驱动在其 GetCapacityResponse 中为 GetCapacityRequest 报告的值,其拓扑和参数与之前的字段匹配。
自从 CSI 规范 1.4.0 起,这定义为
CreateVolumeRequest.capacity_range.required_bytes
字段中可以使用的最大值, 以便用 GetCapacityRequest 中相同的参数创建一个卷。 Kubernetes API 中的相应值是卷声明中的 ResourceRequirements.Requests。
nodeTopology (LabelSelector)
nodeTopology 定义了哪些节点有权访问已报告容量的存储。 如果未设置,则不能从集群中的任意节点访问此存储。 如果留空,则可以从所有节点访问此存储。此字段不可变更。
CSIStorageCapacityList
CSIStorageCapacityList 是 CSIStorageCapacity 对象的集合。
apiVersion: storage.k8s.io/v1
kind: CSIStorageCapacityList
metadata (ListMeta)
标准的列表元数据。 更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]CSIStorageCapacity),必需
items 是 CSIStorageCapacity 对象的列表。
操作
get
读取指定的 CSIStorageCapacity
HTTP 请求
GET /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}
参数
name (路径参数): string,必需
CSIStorageCapacity 的名称
namespace (路径参数): string,必需
pretty (查询参数): string
响应
200 (CSIStorageCapacity): OK
401: Unauthorized
list
列出或观测类别为 CSIStorageCapacity 的对象
HTTP 请求
GET /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities
参数
namespace (路径参数): string,必需
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (CSIStorageCapacityList): OK
401: Unauthorized
list
列出或观测类别为 CSIStorageCapacity 的对象
HTTP 请求
GET /apis/storage.k8s.io/v1/csistoragecapacities
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (CSIStorageCapacityList): OK
401: Unauthorized
create
创建 CSIStorageCapacity
HTTP 请求
POST /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities
参数
namespace (路径参数): string,必需
body: CSIStorageCapacity,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (CSIStorageCapacity): OK
201 (CSIStorageCapacity): Created
202 (CSIStorageCapacity): Accepted
401: Unauthorized
update
替换指定的 CSIStorageCapacity
HTTP 请求
PUT /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}
参数
name (路径参数): string,必需
CSIStorageCapacity 的名称
namespace (路径参数): string,必需
body: CSIStorageCapacity,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (CSIStorageCapacity): OK
201 (CSIStorageCapacity): Created
401: Unauthorized
patch
部分更新指定的 CSIStorageCapacity
HTTP 请求
PATCH /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}
参数
name (路径参数): string,必需
CSIStorageCapacity 的名称
namespace (路径参数): string,必需
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (CSIStorageCapacity): OK
201 (CSIStorageCapacity): Created
401: Unauthorized
delete
删除 CSIStorageCapacity
HTTP 请求
DELETE /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}
参数
name (路径参数): string,必需
CSIStorageCapacity 的名称
namespace (路径参数): string,必需
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
删除 CSIStorageCapacity 的集合
HTTP 请求
DELETE /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities
参数
namespace (路径参数): string,必需
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
6 - PersistentVolumeClaim
apiVersion: v1
import "k8s.io/api/core/v1"
PersistentVolumeClaim
PersistentVolumeClaim 是用户针对一个持久卷的请求和申领。
apiVersion: v1
kind: PersistentVolumeClaim
metadata (ObjectMeta)
标准的对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (PersistentVolumeClaimSpec)
spec 定义 Pod 作者所请求的卷的预期特征。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
status (PersistentVolumeClaimStatus)
status 表示一个持久卷申领的当前信息/状态。只读。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
PersistentVolumeClaimSpec
PersistentVolumeClaimSpec 描述存储设备的常用参数,并支持通过 source 来设置特定于提供商的属性。
accessModes ([]string)
原子性:将在合并期间被替换
accessModes 包含卷应具备的预期访问模式。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#access-modes-1
selector (LabelSelector)
selector 是在绑定时对卷进行选择所执行的标签查询。
- resources (VolumeResourceRequirements)
resources 表示卷应拥有的最小资源。 如果启用了 RecoverVolumeExpansionFailure 功能特性,则允许用户指定这些资源要求, 此值必须低于之前的值,但必须高于申领的状态字段中记录的容量。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#resources
VolumeResourceRequirements 描述了卷的存储资源要求。
resources.limits (map[string]Quantity)
limits 描述允许的最大计算资源量。更多信息: https://kubernetes.io/zh-cn/docs/concepts/configuration/manage-resources-containers/
resources.requests (map[string]Quantity)
requests 描述所需的最小计算资源量。 如果针对容器省略 requests,则在显式指定的情况下默认为 limits,否则为具体实现所定义的值。请求不能超过限制。更多信息: https://kubernetes.io/zh-cn/docs/concepts/configuration/manage-resources-containers/
volumeName (string)
volumeName 是对此申领所对应的 PersistentVolume 的绑定引用。
storageClassName (string)
storageClassName 是此申领所要求的 StorageClass 名称。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#class-1
volumeMode (string)
volumeMode 定义申领需要哪种类别的卷。当申领规约中未包含此字段时,意味着取值为 Filesystem。
Beta 级别
dataSource (TypedLocalObjectReference)
dataSource 字段可用于二选一:
现有的 VolumeSnapshot 对象(snapshot.storage.k8s.io/VolumeSnapshot)
现有的 PVC (PersistentVolumeClaim)
如果制备器或外部控制器可以支持指定的数据源,则它将根据指定数据源的内容创建新的卷。 当 AnyVolumeDataSource 特性门控被启用时,dataSource 内容将被复制到 dataSourceRef, 当 dataSourceRef.namespace 未被指定时,dataSourceRef 内容将被复制到 dataSource。 如果名字空间被指定,则 dataSourceRef 不会被复制到 dataSource。
dataSourceRef (TypedObjectReference)
dataSourceRef 指定一个对象,当需要非空卷时,可以使用它来为卷填充数据。 此字段值可以是来自非空 API 组(非核心对象)的任意对象,或一个 PersistentVolumeClaim 对象。 如果设置了此字段,则仅当所指定对象的类型与所安装的某些卷填充器或动态制备器匹配时,卷绑定才会成功。 此字段将替换 dataSource 字段的功能,因此如果两个字段非空,其取值必须相同。 为了向后兼容,当未在 dataSourceRef 中指定名字空间时, 如果(dataSource 和 dataSourceRef)其中一个字段为空且另一个字段非空,则两个字段将被自动设为相同的值。 在 dataSourceRef 中指定名字空间时,dataSource 未被设置为相同的值且必须为空。 dataSource 和 dataSourceRef 之间有三个重要的区别:
- dataSource 仅允许两个特定类型的对象,而 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。
- dataSource 忽略不允许的值(这类值会被丢弃),而 dataSourceRef 保留所有值并在指定不允许的值时产生错误。
- dataSource 仅允许本地对象,而 dataSourceRef 允许任意名字空间中的对象。
(Beta) 使用此字段需要启用 AnyVolumeDataSource 特性门控。 (Alpha) 使用 dataSourceRef 的名字空间字段需要启用 CrossNamespaceVolumeDataSource 特性门控。
- dataSourceRef.kind (string),必需
kind 是正被引用的资源的类型。
dataSourceRef.name (string),必需
name 是正被引用的资源的名称。
- dataSourceRef.apiGroup (string)
apiGroup 是正被引用的资源的组。如果 apiGroup 未被指定,则指定的 kind 必须在核心 API 组中。 对于任何第三方类型,apiGroup 是必需的。
dataSourceRef.namespace (string)
namespace 是正被引用的资源的名字空间。请注意,当指定一个名字空间时, 在引用的名字空间中 gateway.networking.k8s.io/ReferenceGrant 对象是必需的, 以允许该名字空间的所有者接受引用。有关详细信息,请参阅 ReferenceGrant 文档。 (Alpha) 此字段需要启用 CrossNamespaceVolumeDataSource 特性门控。
volumeAttributesClassName (string)
volumeAttributesClassName
可用于设置此申领所使用的 VolumeAttributesClass。 如果设置了此字段,CSI 驱动程序将使用相应 VolumeAttributesClass 中定义的属性创建或更新卷。 与storageClassName
的用途不同,此属性可以在创建申领之后更改。空字符串值表示不会将 VolumeAttributesClass 应用于申领,但一旦设置,就不允许将此字段重置为空字符串。如果未指定且 PersistentVolumeClaim 未绑定, 则持久卷控制器将设置默认的 VolumeAttributesClass(如果存在)。 如果 VolumeAttributesClass 所引用的资源不存在,则此 PersistentVolumeClaim 将被设置为 Pending 状态, 如modifyVolumeStatus
字段所示,直到存在此类资源。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volume-attributes-classes/(Beta)使用此字段需要启用 VolumeAttributesClass 特性门控(默认情况下关闭)。
PersistentVolumeClaimStatus
PersistentVolumeClaimStatus 是持久卷申领的当前状态。
accessModes ([]string)
原子性:将在合并期间被替换
accessModes 包含支持 PVC 的卷所具有的实际访问模式。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#access-modes-1
allocatedResourceStatuses (map[string]string)
allocatedResourceStatuses 存储为给定 PVC 而调整大小的资源的状态。键名遵循标准的 Kubernetes 标签语法。 有效值为:
- 未加前缀的键:
- storage - 卷的容量。
- 自定义资源必须使用实现定义的带前缀的名称,如 "example.com/my-custom-resource"。
除上述值之外,未加前缀或具有
kubernetes.io
前缀的键被视为保留键,因此不能使用。
ClaimResourceStatus 可以处于以下任一状态:
- ControllerResizeInProgress:大小调整控制器开始在控制平面中调整卷大小时所设置的状态。
- ControllerResizeFailed:大小调整控制器出现致命错误导致大小调整失败时所设置的状态。
- NodeResizePending:大小调整控制器已完成对卷大小的调整但需要在节点上进一步调整卷大小时的状态。
- NodeResizeInProgress:kubelet 开始调整卷大小时所设置的状态。
- NodeResizeFailed:kubelet 在出现致命错误而导致大小调整失败时所设置的状态。 临时错误不会设置 NodeResizeFailed。
例如:如果扩展 PVC 以获取更多的容量,则此字段可以是以下状态之一:
- pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeInProgress"
- pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeFailed"
- pvc.status.allocatedResourceStatus['storage'] = "NodeResizePending"
- pvc.status.allocatedResourceStatus['storage'] = "NodeResizeInProgress"
- pvc.status.allocatedResourceStatus['storage'] = "NodeResizeFailed" 当未设置此字段时,表示没有针对给定 PVC 执行大小调整操作。
如果控制器收到具有先前未知的 resourceName 或 ClaimResourceStatus 的 PVC 更新, 则该控制器应忽略此项更新才能按预期工作。例如,仅负责调整卷容量大小的控制器应忽略更改与 PVC 关联的其他合法资源的 PVC 更新。
这是一个 Alpha 字段,需要启用 RecoverVolumeExpansionFailure 功能特性。
- 未加前缀的键:
allocatedResources (map[string]Quantity)
allocatedResources 跟踪分配给 PVC 的资源,包括其容量。键名遵循标准的 Kubernetes 标签语法。 有效值为:
- 未加前缀的键:
- storage - 卷的容量。
- 自定义资源必须使用实现定义的带前缀的名称,如 "example.com/my-custom-resource"。
除上述值之外,未加前缀或具有
kubernetes.io
前缀的键被视为保留键,因此不能使用。
当出现卷扩充操作请求时,此字段可能大于实际的容量。 就存储配额而言,将使用 allocatedResources 和 PVC.spec.resources 二者中的更大值。 如果未设置 allocatedResources,则 PVC.spec.resources 单独用于配额计算。 如果减小一个卷扩充容量请求,则仅当没有正在进行的扩充操作且实际卷容量等于或小于请求的容量时, 才会减小 allocatedResources。
如果控制器收到具有先前未知的 resourceName 的 PVC 更新,则该控制器应忽略此项更新才能按预期工作。 例如,仅负责调整卷容量大小的控制器应忽略更改与 PVC 关联的其他合法资源的 PVC 更新。
这是一个 Alpha 字段,需要启用 RecoverVolumeExpansionFailure 功能特性。
- 未加前缀的键:
capacity (map[string]Quantity)
capacity 表示底层卷的实际资源。
conditions ([]PersistentVolumeClaimCondition)
补丁策略:按照键
type
合并映射:基于
name
键的唯一值将在合并期间被保留conditions 是持久卷声明的当前的状况。 如果正在调整底层持久卷的大小,则状况将被设为 “Resizing”。
conditions.status (string),必需
conditions.type (string),必需
conditions.lastProbeTime (Time)
lastProbeTime 是我们探测 PVC 状况的时间。
Time 是 time.Time 的包装类,支持正确地序列化为 YAML 和 JSON。 为 time 包提供的许多工厂方法提供了包装类。
conditions.lastTransitionTime (Time)
lastTransitionTime 是状况从一个状态转换为另一个状态的时间。
Time 是 time.Time 的包装类,支持正确地序列化为 YAML 和 JSON。 为 time 包提供的许多工厂方法提供了包装类。
conditions.message (string)
message 是人类可读的消息,指示有关上一次转换的详细信息。
conditions.reason (string)
reason 是唯一的,它应该是一个机器可理解的简短字符串,指明上次状况转换的原因。 如果它报告 “Resizing”,则意味着正在调整底层持久卷的大小。
currentVolumeAttributesClassName (string)
currentVolumeAttributesClassName
是 PVC 所使用的 VolumeAttributesClass 的当前名称。 这是一个 Beta 级别字段,需要启用 VolumeAttributesClass 特性(默认情况下处于关闭状态)。modifyVolumeStatus (ModifyVolumeStatus)
modifyVolumeStatus
表示 ControllerModifyVolume 操作的状态对象。 如果未设置,则表示没有尝试执行任何修改卷操作。这是一个测试字段,需要启用 VolumeAttributesClass 特性(默认关闭)。ModifyVolumeStatus 表示 ControllerModifyVolume 操作的状态对象
modifyVolumeStatus.status (string),必需
status 是 ControllerModifyVolume 操作的状态。它可以是以下任一状态:
- Pending Pending 表示由于未满足要求(例如指定的 VolumeAttributesClass 不存在)而无法修改 PersistentVolumeClaim。
- InProgress InProgress 表示卷正在被修改。
- Infeasible Infeasible 表示请求已被 CSI 驱动程序拒绝,因为请求无效。要解决此错误,需要指定有效的 VolumeAttributesClass。 注意:将来可能会添加新状态。消费者应当检查未知状态,并适当地处理失败情况。
modifyVolumeStatus.targetVolumeAttributesClassName (string)
targetVolumeAttributesClassName
是当前正在协调的 PVC 的 VolumeAttributesClass 的名称
phase (string)
phase 表示 PersistentVolumeClaim 的当前阶段。
PersistentVolumeClaimList
PersistentVolumeClaimList 是 PersistentVolumeClaim 各项的列表。
apiVersion: v1
kind: PersistentVolumeClaimList
metadata (ListMeta)
标准的列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]PersistentVolumeClaim),必需
items 是持久卷申领的列表。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
操作
get
读取指定的 PersistentVolumeClaim
HTTP 请求
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
参数
name (路径参数): string,必需
PersistentVolumeClaim 的名称
namespace (路径参数): string,必需
pretty (查询参数): string
响应
200 (PersistentVolumeClaim): OK
401: Unauthorized
get
读取指定的 PersistentVolumeClaim 的状态
HTTP 请求
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
参数
name (路径参数): string,必需
PersistentVolumeClaim 的名称
namespace (路径参数): string,必需
pretty (查询参数): string
响应
200 (PersistentVolumeClaim): OK
401: Unauthorized
list
列出或观测类别为 PersistentVolumeClaim 的对象
HTTP 请求
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims
参数
namespace (路径参数): string,必需
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (PersistentVolumeClaimList): OK
401: Unauthorized
list
列出或观测类别为 PersistentVolumeClaim 的对象
HTTP 请求
GET /api/v1/persistentvolumeclaims
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (PersistentVolumeClaimList): OK
401: Unauthorized
create
创建 PersistentVolumeClaim
HTTP 请求
POST /api/v1/namespaces/{namespace}/persistentvolumeclaims
参数
namespace (路径参数): string,必需
body: PersistentVolumeClaim,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
202 (PersistentVolumeClaim): Accepted
401: Unauthorized
update
替换指定的 PersistentVolumeClaim
HTTP 请求
PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
参数
name (路径参数): string,必需
PersistentVolumeClaim 的名称
namespace (路径参数): string,必需
body: PersistentVolumeClaim,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: Unauthorized
update
替换指定的 PersistentVolumeClaim 的状态
HTTP 请求
PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
参数
name (路径参数): string,必需
PersistentVolumeClaim 的名称
namespace (路径参数): string,必需
body: PersistentVolumeClaim,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: Unauthorized
patch
部分更新指定的 PersistentVolumeClaim
HTTP 请求
PATCH /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
参数
name (路径参数): string,必需
PersistentVolumeClaim 的名称
namespace (路径参数): string,必需
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: Unauthorized
patch
部分更新指定的 PersistentVolumeClaim 的状态
HTTP 请求
PATCH /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
参数
name (路径参数): string,必需
PersistentVolumeClaim 的名称
namespace (路径参数): string,必需
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: Unauthorized
delete
删除 PersistentVolumeClaim
HTTP 请求
DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
参数
name (路径参数): string,必需
PersistentVolumeClaim 的名称
namespace (路径参数): string,必需
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (PersistentVolumeClaim): OK
202 (PersistentVolumeClaim): Accepted
401: Unauthorized
deletecollection
删除 PersistentVolumeClaim 的集合
HTTP 请求
DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims
参数
namespace (路径参数): string,必需
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
7 - PersistentVolume
apiVersion: v1
import "k8s.io/api/core/v1"
PersistentVolume
PersistentVolume (PV) 是管理员制备的一个存储资源。它类似于一个节点。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes
apiVersion: v1
kind: PersistentVolume
metadata (ObjectMeta)
标准的对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (PersistentVolumeSpec)
spec 定义了集群所拥有的持久卷的规约。由管理员进行制备。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#persistent-volumes
status (PersistentVolumeStatus)
status 表示持久卷的当前信息/状态。该值由系统填充,只读。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#persistent-volumes
PersistentVolumeSpec
PersistentVolumeSpec 是持久卷的规约。
accessModes ([]string)
原子:将在合并期间被替换
accessModes 包含可以挂载卷的所有方式。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#access-modes
capacity (map[string]Quantity)
capacity 描述持久卷的资源和容量。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#capacity
claimRef (ObjectReference)
claimRef 是 PersistentVolume 和 PersistentVolumeClaim 之间双向绑定的一部分。 预期在绑定时为非空。claim.VolumeName 是在 PV 和 PVC 间绑定关系的正式确认。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#binding
mountOptions ([]string)
原子:将在合并期间被替换
mountOptions 是挂载选项的列表,例如 ["ro", "soft"]。 针对此字段无合法性检查——如果某选项无效,则只是挂载会失败。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/#mount-options
nodeAffinity (VolumeNodeAffinity)
nodeAffinity 定义可以从哪些节点访问此卷的约束限制。此字段会影响调度使用此卷的 Pod。
VolumeNodeAffinity 定义可以从哪些节点访问此卷的约束限制。
nodeAffinity.required (NodeSelector)
required 指定必须满足的硬性节点约束。
节点选择器表示在一组节点上一个或多个标签查询结果的并集; 也就是说,它表示由节点选择器条件表示的选择器的逻辑或计算结果。
nodeAffinity.required.nodeSelectorTerms ([]NodeSelectorTerm),必需
原子:将在合并期间被替换
必需。节点选择器条件的列表。这些条件是逻辑或的计算结果。
一个 null 或空的节点选择器条件不会与任何对象匹配。这些条件会按逻辑与的关系来计算。 TopologySelectorTerm 类别实现了 NodeSelectorTerm 的子集。
nodeAffinity.required.nodeSelectorTerms.matchExpressions ([]NodeSelectorRequirement)
原子:将在合并期间被替换
基于节点标签所设置的节点选择器要求的列表。
nodeAffinity.required.nodeSelectorTerms.matchFields ([]NodeSelectorRequirement)
原子:将在合并期间被替换
基于节点字段所设置的节点选择器要求的列表。
persistentVolumeReclaimPolicy (string)
persistentVolumeReclaimPolicy 定义当从持久卷声明释放持久卷时会发生什么。 有效的选项为 Retain(手动创建 PersistentVolumes 所用的默认值)、 Delete(动态制备 PersistentVolumes 所用的默认值)和 Recycle(已弃用)。 Recycle 选项必须被 PersistentVolume 下层的卷插件所支持才行。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#reclaiming
storageClassName (string)
storageClassName 是这个持久卷所属于的 StorageClass 的名称。 空值意味着此卷不属于任何 StorageClass。
volumeAttributesClassName (string)
此持久卷所属的 VolumeAttributesClass 的名称。不能为空。 当此字段未设置时,表示此卷不属于任何 VolumeAttributesClass。 此字段是可变更的,在某个卷已被成功更新为新类后可以由 CSI 驱动更改此字段。对于未绑定的 PersistentVolume, volumeAttributesClassName 将在绑定过程中与未绑定的 PersistentVolumeClaim 进行匹配。 这是一个 Beta 字段,需要启用 VolumeAttributesClass 特性(默认关闭)。
volumeMode (string)
volumeMode 定义一个卷是带着已格式化的文件系统来使用还是保持在原始块状态来使用。 当 spec 中未包含此字段时,意味着取值为 Filesystem。
Local
hostPath (HostPathVolumeSource)
hostPath 表示主机上的目录,由开发或测试人员进行制备。hostPath 仅对单节点开发和测试有用! 不会以任何方式支持主机存储(On-host storage),并且不能用于多节点集群中。 更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#hostpath
表示映射到 Pod 中的主机路径。主机路径卷不支持所有权管理或 SELinux 重新打标签。
hostPath.path (string),必需
目录在主机上的路径。如果该路径是一个符号链接,则它将沿着链接指向真实路径。 更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#hostpath
hostPath.type (string)
HostPath 卷的类型。默认为 ""。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#hostpath
local (LocalVolumeSource)
local 表示具有节点亲和性的直连式存储。
local 表示具有节点亲和性的直连式存储(Beta 特性)。
local.path (string),必需
指向节点上卷的完整路径。它可以是一个目录或块设备(磁盘、分区...)。
local.fsType (string)
fsType 是要挂载的文件系统类型。它仅适用于 path 是一个块设备的情况。 必须是主机操作系统所支持的文件系统类型之一。例如 “ext4”、“xfs”、“ntfs”。 在未指定的情况下,默认值是自动选择一个文件系统。
持久卷
awsElasticBlockStore (AWSElasticBlockStoreVolumeSource)
awsElasticBlockStore 表示挂接到 kubelet 的主机随后暴露给 Pod 的一个 AWS Disk 资源。 更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#awselasticblockstore
表示 AWS 上的 Persistent Disk 资源。挂载到一个容器之前 AWS EBS 磁盘必须存在。 该磁盘还必须与 kubelet 位于相同的 AWS 区域中。AWS EBS 磁盘只能以读/写一次进行挂载。 AWS EBS 卷支持所有权管理和 SELinux 重新打标签。
awsElasticBlockStore.volumeID (string),必需
volumeID 是 AWS(Amazon EBS 卷)中持久磁盘资源的唯一 ID。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#awselasticblockstore
awsElasticBlockStore.fsType (string)
fsType 是你要挂载的卷的文件系统类型。提示:确保主机操作系统支持此文件系统类型。 例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#awselasticblockstore
awsElasticBlockStore.partition (int32)
partition 是你要挂载的卷中的分区。如果省略,则默认为按卷名称进行挂载。 例如:对于卷 /dev/sda1,将分区指定为 “1”。 类似地,/dev/sda 的卷分区为 “0”(或可以将属性留空)。
awsElasticBlockStore.readOnly (boolean)
readOnly 值为 true 将在 VolumeMounts 中强制设置 readOnly。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#awselasticblockstore
azureDisk (AzureDiskVolumeSource)
azureDisk 表示主机上挂载的 Azure Data Disk 并绑定挂载到 Pod 上。
azureDisk 表示主机上挂载的 Azure Data Disk 并绑定挂载到 Pod 上。
azureDisk.diskName (string),必需
diskName 是 Blob 存储中数据盘的名称。
azureDisk.diskURI (string),必需
diskURI 是 Blob 存储中数据盘的 URI。
azureDisk.cachingMode (string)
cachingMode 是主机缓存(Host Caching)模式:None、Read Only、Read Write。
azureDisk.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。
azureDisk.kind (string)
kind 预期值包括:
- Shared:每个存储帐户多个 Blob 磁盘;
- Dedicated:每个存储帐户单个 Blob 磁盘;
- Managed:azure 托管的数据盘(仅托管的可用性集合中)。
默认为 Shared。
azureDisk.readOnly (boolean)
readOnly 默认为 false(读/写)。此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。
azureFile (AzureFilePersistentVolumeSource)
azureDisk 表示主机上挂载并绑定挂载到 Pod 上的 Azure File Service。
azureFile 表示主机上挂载的并绑定挂载到 Pod 上的 Azure File Service。
azureFile.secretName (string),必需
secretName 是包含 Azure 存储账号名称和主键的 Secret 的名称。
azureFile.shareName (string),必需
shareName 是 azure Share Name。
azureFile.readOnly (boolean)
readOnly 默认为 false(读/写)。此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。
azureFile.secretNamespace (string)
secretNamespace 是包含 Azure 存储账号名称和主键的 Secret 的名字空间,默认与 Pod 相同。
cephfs (CephFSPersistentVolumeSource)
cephfs 表示在主机上挂载的 Ceph FS,该文件系统挂载与 Pod 的生命周期相同。
表示在 Pod 的生命周期内持续的 Ceph Filesystem 挂载。cephfs 卷不支持所有权管理或 SELinux 重新打标签。
cephfs.monitors ([]string),必需
原子:将在合并期间被替换
monitors 是必需的。monitors 是 Ceph 监测组件的集合。更多信息: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.path (string)
path 是可选的。用作挂载的根,而不是完整的 Ceph 树,默认为 /。
cephfs.readOnly (boolean)
readOnly 是可选的。默认为 false(读/写)。此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。 更多信息: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.secretFile (string)
secretFile 是可选的。secretFile 是 user 对应的密钥环的路径,默认为 /etc/ceph/user.secret。 更多信息: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.secretRef (SecretReference)
secretRef 是可选的。secretRef 是针对用户到身份认证 Secret 的引用,默认为空。更多信息: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
SecretReference 表示对某 Secret 的引用,其中包含足够的信息来访问任何名字空间中的 Secret。
cephfs.secretRef.name (string)
name 在名字空间内是唯一的,以引用一个 Secret 资源。
cephfs.secretRef.namespace (string)
namespace 指定一个名字空间,Secret 名称在该名字空间中必须唯一。
cephfs.user (string)
user 是可选的。user 是 rados 用户名,默认为 admin。更多信息: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cinder (CinderPersistentVolumeSource)
cinder 表示 kubelet 主机上挂接和挂载的 Cinder 卷。更多信息: https://examples.k8s.io/mysql-cinder-pd/README.md
表示 OpenStack 中的一个 Cinder 卷资源。挂载到一个容器之前 Cinder 卷必须已经存在。 该卷还必须与 kubelet 位于相同的地区中。cinder 卷支持所有权管理和 SELinux 重新打标签。
cinder.volumeID (string),必需
volumeID 用于标识 Cinder 中的卷。更多信息: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。 例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。更多信息: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.readOnly (boolean)
readOnly 是可选的。默认为 false(读/写)。 此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。更多信息: https://examples.k8s.io/mysql-cinder-pd/README.md
csi (CSIPersistentVolumeSource)
csi 表示由一个外部 CSI 驱动处理的存储(Beta 特性)。
表示由一个外部 CSI 卷驱动管理的存储(Beta 特性)。
csi.driver (string),必需
driver 是此卷所使用的驱动的名称。必需。
csi.volumeHandle (string),必需
volumeHandle 是 CSI 卷插件的 CreateVolume 所返回的唯一卷名称,用于在所有后续调用中引用此卷。必需。
csi.controllerExpandSecretRef (SecretReference)
controllerExpandSecretRef 是对包含敏感信息的 Secret 对象的引用, 该 Secret 会被传递到 CSI 驱动以完成 CSI ControllerExpandVolume 调用。 此字段是可选的,且如果不需要 Secret,则此字段可以为空。 如果 Secret 对象包含多个 Secret,则所有 Secret 被传递。
SecretReference 表示对某 Secret 的引用,其中包含足够的信息来访问任何名字空间中的 Secret。
csi.controllerExpandSecretRef.name (string)
name 在名字空间内是唯一的,以引用一个 Secret 资源。
csi.controllerExpandSecretRef.namespace (string)
namespace 指定一个名字空间,Secret 名称在该名字空间中必须唯一。
csi.controllerPublishSecretRef (SecretReference)
controllerPublishSecretRef 是对包含敏感信息的 Secret 对象的引用, 该 Secret 会被传递到 CSI 驱动以完成 CSI ControllerPublishVolume 和 ControllerUnpublishVolume 调用。 此字段是可选的,且如果不需要 Secret,则此字段可以为空。 如果 Secret 对象包含多个 Secret,则所有 Secret 被传递。
SecretReference 表示对某 Secret 的引用,其中包含足够的信息来访问任何名字空间中的 Secret。
csi.controllerPublishSecretRef.name (string)
name 在名字空间内是唯一的,以引用一个 Secret 资源。
csi.controllerPublishSecretRef.namespace (string)
namespace 指定一个名字空间,Secret 名称在该名字空间中必须唯一。
csi.fsType (string)
要挂载的 fsType。必须是主机操作系统所支持的文件系统类型之一。例如 “ext4”、“xfs”、“ntfs”。
csi.nodeExpandSecretRef (SecretReference)
nodeExpandSecretRef 是对包含敏感信息的 Secret 对象的引用, 从而传递到 CSI 驱动以完成 CSI NodeExpandVolume 调用。 此字段是可选的,且如果不需要 Secret,则此字段可以为空。 如果 Secret 对象包含多个 Secret,则所有 Secret 被传递。
SecretReference 表示对某 Secret 的引用,其中包含足够的信息来访问任何名字空间中的 Secret。
csi.nodeExpandSecretRef.name (string)
name 在名字空间内是唯一的,以引用一个 Secret 资源。
csi.nodeExpandSecretRef.namespace (string)
namespace 指定一个名字空间,Secret 名称在该名字空间中必须唯一。
csi.nodePublishSecretRef (SecretReference)
nodePublishSecretRef 是对包含敏感信息的 Secret 对象的引用, 以传递到 CSI 驱动以完成 CSI NodePublishVolume 和 NodeUnpublishVolume 调用。 此字段是可选的,且如果不需要 Secret,则此字段可以为空。 如果 Secret 对象包含多个 Secret,则所有 Secret 被传递。
SecretReference 表示对某 Secret 的引用,其中包含足够的信息来访问任何名字空间中的 Secret。
csi.nodePublishSecretRef.name (string)
name 在名字空间内是唯一的,以引用一个 Secret 资源。
csi.nodePublishSecretRef.namespace (string)
namespace 定义了 Secret 名称必须唯一的空间。
csi.nodeStageSecretRef (SecretReference)
nodeStageSecretRef 是对包含敏感信息的 Secret 对象的引用, 从而传递到 CSI 驱动以完成 CSI NodeStageVolume、NodeStageVolume 和 NodeUnstageVolume 调用。 此字段是可选的,且如果不需要 Secret,则此字段可以为空。 如果 Secret 对象包含多个 Secret,则所有 Secret 被传递。
SecretReference 表示对某 Secret 的引用,其中包含足够的信息来访问任何名字空间中的 Secret。
csi.nodeStageSecretRef.name (string)
name 在名字空间内是唯一的,以引用一个 Secret 资源。
csi.nodeStageSecretRef.namespace (string)
namespace 指定一个名字空间,Secret 名称在该名字空间中必须唯一。
csi.readOnly (boolean)
传递到 ControllerPublishVolumeRequest 的 readOnly 值。默认为 false(读/写)。
csi.volumeAttributes (map[string]string)
要发布的卷的 volumeAttributes。
fc (FCVolumeSource)
fc 表示挂接到 kubelet 的主机并随后暴露给 Pod 的一个光纤通道(FC)资源。
表示光纤通道卷。光纤通道卷只能以读/写一次进行挂载。光纤通道卷支持所有权管理和 SELinux 重新打标签。
fc.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。
fc.lun (int32)
lun 是可选的。FC 目标 lun 编号。
fc.readOnly (boolean)
readOnly 是可选的。默认为 false(读/写)。 此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。
fc.targetWWNs ([]string)
原子:将在合并期间被替换
targetWWNs 是可选的。FC 目标全球名称(WWN)。
fc.wwids ([]string)
原子:将在合并期间被替换
wwids 是可选的。FC 卷全球识别号(wwids)。 必须设置 wwids 或 targetWWNs 及 lun 的组合,但不能同时设置两者。
flexVolume (FlexPersistentVolumeSource)
flexVolume 表示使用基于 exec 的插件制备/挂接的通用卷资源。
FlexPersistentVolumeSource 表示使用基于 exec 的插件制备/挂接的通用持久卷资源。
flexVolume.driver (string),必需
driver 是此卷所使用的驱动的名称。
flexVolume.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。默认的文件系统取决于 flexVolume 脚本。
flexVolume.options (map[string]string)
options 是可选的。此字段包含额外的命令选项(如果有)。
flexVolume.readOnly (boolean)
readOnly 是可选的。默认为 false(读/写)。 此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。
flexVolume.secretRef (SecretReference)
secretRef 是可选的。secretRef 是对包含敏感信息的 Secret 对象的引用,从而传递到插件脚本。 如果未指定 Secret 对象,则此字段可以为空。如果 Secret 对象包含多个 Secret,则所有 Secret 被传递到插件脚本。
SecretReference 表示对某 Secret 的引用,其中包含足够的信息来访问任何名字空间中的 Secret。
flexVolume.secretRef.name (string)
name 在名字空间内是唯一的,以引用一个 Secret 资源。
flexVolume.secretRef.namespace (string)
namespace 指定一个名字空间,Secret 名称在该名字空间中必须唯一。
flocker (FlockerVolumeSource)
flocker 表示挂接到 kubelet 的主机并暴露给 Pod 供其使用的 Flocker 卷。 这取决于所运行的 Flocker 控制服务。
表示 Flocker 代理挂载的 Flocker 卷。应设置且仅设置 datasetName 和 datasetUUID 中的一个。 Flocker 卷不支持所有权管理或 SELinux 重新打标签。
flocker.datasetName (string)
datasetName 是存储为元数据的数据集的名称。针对 Flocker 有关数据集的名称应视为已弃用。
flocker.datasetUUID (string)
datasetUUID 是数据集的 UUID。这是 Flocker 数据集的唯一标识符。
gcePersistentDisk (GCEPersistentDiskVolumeSource)
gcePersistentDisk 表示挂接到 kubelet 的主机随后暴露给 Pod 的一个 GCE Disk 资源。 由管理员进行制备。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#gcepersistentdisk
表示 Google 计算引擎中的 Persistent Disk 资源。挂载到一个容器之前 GCE PD 必须存在。 该磁盘还必须与 kubelet 位于相同的 GCE 项目和区域中。GCE PD 只能挂载为读/写一次或只读多次。 GCE PD 支持所有权管理和 SELinux 重新打标签。
gcePersistentDisk.pdName (string),必需
pdName 是 GCE 中 PD 资源的唯一名称。用于标识 GCE 中的磁盘。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#gcepersistentdisk
gcePersistentDisk.fsType (string)
fsType 是你要挂载的卷的文件系统类型。提示:确保主机操作系统支持此文件系统类型。 例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#gcepersistentdisk
gcePersistentDisk.partition (int32)
partition 是你要挂载的卷中的分区。如果省略,则默认为按卷名称进行挂载。 例如:对于卷 /dev/sda1,将分区指定为 “1”。类似地,/dev/sda 的卷分区为 “0”(或可以将属性留空)。 更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#gcepersistentdisk
gcePersistentDisk.readOnly (boolean)
此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。默认为 false。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#gcepersistentdisk
glusterfs (GlusterfsPersistentVolumeSource)
glusterfs 表示关联到主机并暴露给 Pod 的 Glusterfs 卷。由管理员配置。 更多信息:https://examples.k8s.io/volumes/glusterfs/README.md
表示在 Pod 生命周期内一直存在的 Glusterfs 挂载卷。Glusterfs 卷不支持属主管理或 SELinux 重标记。
glusterfs.endpoints (string),必需
endpoints 是详细给出 Glusterfs 拓扑结构的端点的名称。 更多信息: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
glusterfs.path (string),必需
path 是 Glusterfs 卷的路径。 更多信息: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
glusterfs.endpointsNamespace (string)
endpointsNamespace 是 Glusterfs 端点所在的命名空间。 如果 endpointNamespace 为空,则默认值与所绑定的 PVC 的命名空间相同。 更多信息: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
glusterfs.readOnly (boolean)
此处的 readOnly 将强制以只读权限挂载 Glusterfs 卷。 默认为 false。 更多信息: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
iscsi (ISCSIPersistentVolumeSource)
iscsi 表示挂接到 kubelet 的主机随后暴露给 Pod 的一个 ISCSI Disk 资源。由管理员进行制备。
ISCSIPersistentVolumeSource 表示一个 ISCSI 磁盘。ISCSI 卷只能以读/写一次进行挂载。ISCSI 卷支持所有权管理和 SELinux 重新打标签。
iscsi.iqn (string),必需
iqn 是目标 iSCSI 限定名称(Target iSCSI Qualified Name)。
iscsi.lun (int32),必需
lun 是 iSCSI 目标逻辑单元号(iSCSI Target Lun)。
iscsi.targetPortal (string),必需
targetPortal 是 iSCSI 目标门户(iSCSI Target Portal)。 如果不是默认端口(通常是 TCP 端口 860 和 3260),则 Portal 为 IP 或 ip_addr:port。
iscsi.chapAuthDiscovery (boolean)
chapAuthDiscovery 定义是否支持 iSCSI Discovery CHAP 身份认证。
iscsi.chapAuthSession (boolean)
chapAuthSession 定义是否支持 iSCSI Session CHAP 身份认证。
iscsi.fsType (string)
fsType 是你要挂载的卷的文件系统类型。提示:确保主机操作系统支持此文件系统类型。 例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#iscsi
iscsi.initiatorName (string)
initiatorName 是自定义的 iSCSI 发起程序名称(iSCSI Initiator Name)。 如果同时用 iscsiInterface 指定 initiatorName,将为连接创建新的 iSCSI 接口 <目标门户>:<卷名称>。
iscsi.iscsiInterface (string)
iscsiInterface 是使用 iSCSI 传输的接口名称。默认为 “default”(tcp)。
iscsi.portals ([]string)
原子:将在合并期间被替换
portals 是 iSCSI 目标门户列表(iSCSI Target Portal List)。 如果不是默认端口(通常是 TCP 端口 860 和 3260),则 Portal 为 IP 或 ip_addr:port。
iscsi.readOnly (boolean)
此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。默认为 false。
nfs (NFSVolumeSource)
nfs 表示主机上挂载的 NFS。由管理员进行制备。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#nfs
表示 Pod 的生命周期内持续的 NFS 挂载。NFS 卷不支持所有权管理或 SELinux 重新打标签。
nfs.path (string),必需
path 是由 NFS 服务器导出的路径。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#nfs
nfs.server (string),必需
server 是 NFS 服务器的主机名或 IP 地址。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#nfs
nfs.readOnly (boolean)
此处 readOnly 将强制使用只读权限挂载 NFS 导出。默认为 false。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#nfs
photonPersistentDisk (PhotonPersistentDiskVolumeSource)
photonPersistentDisk 表示 kubelet 主机上挂接和挂载的 PhotonController 持久磁盘。
photonPersistentDisk.pdID (string),必需
pdID 是标识 Photon Controller 持久磁盘的 ID。
photonPersistentDisk.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。
portworxVolume (PortworxVolumeSource)
portworxVolume 表示 kubelet 主机上挂接和挂载的 portworx 卷。
PortworxVolumeSource 表示 Portworx 卷资源。
portworxVolume.volumeID (string),必需
volumeID 唯一标识 Portworx 卷。
portworxVolume.fsType (string)
fSType 表示要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”。如果未指定,则隐式推断为 “ext4”。
portworxVolume.readOnly (boolean)
readOnly 默认为 false(读/写)。此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。
quobyte (QuobyteVolumeSource)
quobyte 表示在共享 Pod 生命周期的主机上挂载的 Quobyte。
表示在 Pod 的生命周期内持续的 Quobyte 挂载。Quobyte 卷不支持所有权管理或 SELinux 重新打标签。
quobyte.registry (string),必需
registry 表示将一个或多个 Quobyte Registry 服务指定为 host:port 对的字符串形式(多个条目用英文逗号分隔),用作卷的中央注册表。
quobyte.volume (string),必需
volume 是一个字符串,通过名称引用已创建的 Quobyte 卷。
quobyte.group (string)
group 是将卷访问映射到的组。默认为无组。
quobyte.readOnly (boolean)
此处 readOnly 将强制使用只读权限挂载 Quobyte 卷。默认为 false。
quobyte.tenant (string)
后台中拥有给定 Quobyte 卷的租户。用于动态制备的 Quobyte 卷,其值由插件设置。
quobyte.user (string)
user 是将卷访问映射到的用户。默认为 serivceaccount 用户。
rbd (RBDPersistentVolumeSource)
rbd 表示主机上挂载的 Rados 块设备,其生命周期与 Pod 生命周期相同。更多信息: https://examples.k8s.io/volumes/rbd/README.md
表示在 Pod 的生命周期内一直存在的 Rados 块设备挂载。RBD 卷支持所有权管理和 SELinux 重新打标签。
rbd.image (string),必需
image 是 rados 镜像名称。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.monitors ([]string),必需
原子:将在合并期间被替换
monitors 是 Ceph 监测的集合。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.fsType (string)
fsType 是你要挂载的卷的文件系统类型。提示:确保主机操作系统支持此文件系统类型。 例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#rbd
rbd.keyring (string)
keyring 是给定用户的密钥环的路径。默认为 /etc/ceph/keyring。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.pool (string)
pool 是 rados 池名称。默认为 rbd。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.readOnly (boolean)
此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。默认为 false。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.secretRef (SecretReference)
secretRef 是针对 RBDUser 的身份认证 Secret 的名称。如果提供,则重载 keyring。默认为 nil。 更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
SecretReference 表示对某 Secret 的引用,其中包含足够的信息来访问任何名字空间中的 Secret。
rbd.secretRef.name (string)
name 在名字空间内是唯一的,以引用一个 Secret 资源。
rbd.secretRef.namespace (string)
namespace 指定一个名字空间,Secret 名称在该名字空间中必须唯一。
rbd.user (string)
user 是 rados 用户名。默认为 admin。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
scaleIO (ScaleIOPersistentVolumeSource)
scaleIO 表示 Kubernetes 节点上挂接和挂载的 ScaleIO 持久卷。
ScaleIOPersistentVolumeSource 表示一个 ScaleIO 持久卷。
scaleIO.gateway (string),必需
gateway 是 ScaleIO API 网关的主机地址。
scaleIO.secretRef (SecretReference),必需
secretRef 引用包含 ScaleIO 用户和其他敏感信息的 Secret。如果未提供此项,则 Login 操作将失败。
SecretReference 表示对某 Secret 的引用,其中包含足够的信息来访问任何名字空间中的 Secret。
scaleIO.secretRef.name (string)
name 在名字空间内是唯一的,以引用一个 Secret 资源。
scaleIO.secretRef.namespace (string)
namespace 指定一个名字空间,Secret 名称在该名字空间中必须唯一。
scaleIO.system (string),必需
system 是 ScaleIO 中所配置的存储系统的名称。
scaleIO.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。默认为 “xfs”。
scaleIO.protectionDomain (string)
protectionDomain 是 ScaleIO 保护域(ScaleIO Protection Domain)的名称,用于已配置的存储。
scaleIO.readOnly (boolean)
readOnly 默认为 false(读/写)。此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。
scaleIO.sslEnabled (boolean)
sslEnabled 是启用/禁用与网关(Gateway)进行 SSL 通信的标志,默认为 false。
scaleIO.storageMode (string)
storageMode 指示卷所用的存储应是 ThickProvisioned 或 ThinProvisioned。 默认为 ThinProvisioned。
scaleIO.storagePool (string)
storagePool 是与保护域关联的 ScaleIO Storage Pool。
scaleIO.volumeName (string)
volumeName 是在与此卷源关联的 ScaleIO 系统中已创建的卷的名称。
storageos (StorageOSPersistentVolumeSource)
storageOS 表示一个 StorageOS 卷,该卷被挂接到 kubelet 的主机并挂载到 Pod 中。更多信息: https://examples.k8s.io/volumes/storageos/README.md
storageos.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。
storageos.readOnly (boolean)
readOnly 默认为 false(读/写)。此处 readOnly 将在 VolumeMounts 中强制设置 readOnly。
storageos.secretRef (ObjectReference)
secretRef 指定用于获取 StorageOS API 凭据的 Secret。如果未指定,则将尝试使用默认值。
storageos.volumeName (string)
volumeName 是 StorageOS 卷的人类可读名称。这些卷名称在一个名字空间内是唯一的。
storageos.volumeNamespace (string)
volumeNamespace 指定 StorageOS 内卷的作用域。如果未指定名字空间,则将使用 Pod 的名字空间。 这一字段的存在允许 Kubernetes 中名称作用域与 StorageOS 进行映射,实现更紧密的集成。 将 volumeName 设为任何名称均可以重载默认的行为。 如果你未在 StorageOS 内使用名字空间,则设为 “default”。 StorageOS 内预先不存在的名字空间会被创建。
vsphereVolume (VsphereVirtualDiskVolumeSource)
vsphereVolume 表示 kubelet 主机上挂接和挂载的 vSphere 卷。
vsphereVolume.volumePath (string),必需
volumePath 是标识 vSphere 卷 vmdk 的路径。
vsphereVolume.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。
vsphereVolume.storagePolicyID (string)
storagePolicyID 是与 StoragePolicyName 关联的基于存储策略的管理(SPBM)配置文件 ID。
vsphereVolume.storagePolicyName (string)
storagePolicyName 是基于存储策略的管理(SPBM)配置文件名称。
PersistentVolumeStatus
PersistentVolumeStatus 是持久卷的当前状态。
lastPhaseTransitionTime (Time)
lastPhaseTransitionTime 是从一个阶段转换到另一个阶段的时间,每次卷阶段转换时都会自动重置为当前时间。
Time 是 time.Time 的包装器,支持正确编组为 YAML 和 JSON,它为 time 包提供的许多工厂方法提供了包装器。
message (string)
message 是一条人类可读的消息,指明有关卷为何处于此状态的详细信息。
phase (string)
phase 表示一个卷是否可用,是否绑定到一个 PVC 或是否由某个 PVC 释放。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#phase
reason (string)
reason 是一个描述任何故障的简短 CamelCase 字符串,用于机器解析并在 CLI 中整齐地显示。
PersistentVolumeList
PersistentVolumeList 是 PersistentVolume 各项的列表。
apiVersion: v1
kind: PersistentVolumeList
metadata (ListMeta)
标准的列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]PersistentVolume),必需
items 是持久卷的列表。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes
操作
get
读取指定的 PersistentVolume
HTTP 请求
GET /api/v1/persistentvolumes/{name}
参数
name (路径参数): string,必需
PersistentVolume 的名称。
pretty (查询参数): string
响应
200 (PersistentVolume): OK
401: Unauthorized
get
读取指定的 PersistentVolume 的状态
HTTP 请求
GET /api/v1/persistentvolumes/{name}/status
参数
name (路径参数): string,必需
PersistentVolume 的名称。
pretty (查询参数): string
响应
200 (PersistentVolume): OK
401: Unauthorized
list
列出或观测类别为 PersistentVolume 的对象
HTTP 请求
GET /api/v1/persistentvolumes
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (PersistentVolumeList): OK
401: Unauthorized
create
创建 PersistentVolume
HTTP 请求
POST /api/v1/persistentvolumes
参数
body: PersistentVolume,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (PersistentVolume): OK
201 (PersistentVolume): Created
202 (PersistentVolume): Accepted
401: Unauthorized
update
替换指定的 PersistentVolume
HTTP 请求
PUT /api/v1/persistentvolumes/{name}
参数
name (路径参数): string,必需
PersistentVolume 的名称。
body: PersistentVolume,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (PersistentVolume): OK
201 (PersistentVolume): Created
401: Unauthorized
update
替换指定的 PersistentVolume 的状态
HTTP 请求
PUT /api/v1/persistentvolumes/{name}/status
参数
name (路径参数): string,必需
PersistentVolume 的名称。
body: PersistentVolume,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (PersistentVolume): OK
201 (PersistentVolume): Created
401: Unauthorized
patch
部分更新指定的 PersistentVolume
HTTP 请求
PATCH /api/v1/persistentvolumes/{name}
参数
name (路径参数): string,必需
PersistentVolume 的名称。
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (PersistentVolume): OK
201 (PersistentVolume): Created
401: Unauthorized
patch
部分更新指定的 PersistentVolume 的状态
HTTP 请求
PATCH /api/v1/persistentvolumes/{name}/status
参数
name (路径参数): string,必需
PersistentVolume 的名称。
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (PersistentVolume): OK
201 (PersistentVolume): Created
401: Unauthorized
delete
删除 PersistentVolume
HTTP 请求
DELETE /api/v1/persistentvolumes/{name}
参数
name (路径参数): string,必需
PersistentVolume 的名称。
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (PersistentVolume): OK
202 (PersistentVolume): Accepted
401: Unauthorized
deletecollection
删除 PersistentVolume 的集合
HTTP 请求
DELETE /api/v1/persistentvolumes
参数
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
8 - StorageClass
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
StorageClass
StorageClass 为可以动态制备 PersistentVolume 的存储类描述参数。
StorageClass 是不受名字空间作用域限制的;按照 etcd 设定的存储类的名称位于 ObjectMeta.Name 中。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata (ObjectMeta)
标准的对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
provisioner (string),必需
provisioner 表示制备器的类别。
allowVolumeExpansion (boolean)
allowVolumeExpansion 显示存储类是否允许卷扩充。
allowedTopologies ([]TopologySelectorTerm)
原子性:将在合并期间被替换
allowedTopologies 限制可以动态制备卷的节点拓扑。每个卷插件定义其自己支持的拓扑规约。 空的 TopologySelectorTerm 列表意味着没有拓扑限制。 只有启用 VolumeScheduling 功能特性的服务器才能使用此字段。
拓扑选择器条件表示标签查询的结果。 一个 null 或空的拓扑选择器条件不会匹配任何对象。各个条件的要求按逻辑与的关系来计算。 此选择器作为 NodeSelectorTerm 所提供功能的子集。这是一个 Alpha 特性,将来可能会变更。
allowedTopologies.matchLabelExpressions ([]TopologySelectorLabelRequirement)
原子性:将在合并期间被替换
按标签设置的拓扑选择器要求的列表。
拓扑选择器要求是与给定标签匹配的一个选择器。这是一个 Alpha 特性,将来可能会变更。
allowedTopologies.matchLabelExpressions.key (string),必需
选择器所针对的标签键。
allowedTopologies.matchLabelExpressions.values ([]string),必需
原子性:将在合并期间被替换
字符串值的数组。一个值必须与要选择的标签匹配。values 中的每个条目按逻辑或的关系来计算。
mountOptions ([]string)
原子性:将在合并期间被替换
mountOptions 控制此存储类动态制备的 PersistentVolume 的挂载配置,例如 ["ro", "soft"]。 针对此字段无合法性检查 —— 如果有一个选项无效,则这些 PV 的挂载将失败。
parameters (map[string]string)
parameters 包含应创建此存储类卷的制备器的参数。
reclaimPolicy (string)
reclaimPolicy 控制此存储类动态制备的 PersistentVolume 的 reclaimPolicy。默认为 Delete。
volumeBindingMode (string)
volumeBindingMode 指示应该如何制备和绑定 PersistentVolumeClaim。 未设置时,将使用 VolumeBindingImmediate。 只有启用 VolumeScheduling 功能特性的服务器才能使用此字段。
StorageClassList
StorageClassList 是存储类的集合。
apiVersion: storage.k8s.io/v1
kind: StorageClassList
metadata (ListMeta)
标准的列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]StorageClass),必需
items 是 StorageClass 的列表。
操作
get
读取指定的 StorageClass
HTTP 请求
GET /apis/storage.k8s.io/v1/storageclasses/{name}
参数
name (路径参数): string,必需
StorageClass 的名称。
pretty (查询参数): string
响应
200 (StorageClass): OK
401: Unauthorized
list
列出或观测类别为 StorageClass 的对象
HTTP 请求
GET /apis/storage.k8s.io/v1/storageclasses
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (StorageClassList): OK
401: Unauthorized
create
创建 StorageClass
HTTP 请求
POST /apis/storage.k8s.io/v1/storageclasses
参数
body: StorageClass,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (StorageClass): OK
201 (StorageClass): Created
202 (StorageClass): Accepted
401: Unauthorized
update
替换指定的 StorageClass
HTTP 请求
PUT /apis/storage.k8s.io/v1/storageclasses/{name}
参数
name (路径参数): string,必需
StorageClass 的名称。
body: StorageClass,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (StorageClass): OK
201 (StorageClass): Created
401: Unauthorized
patch
部分更新指定的 StorageClass
HTTP 请求
PATCH /apis/storage.k8s.io/v1/storageclasses/{name}
参数
name (路径参数): string,必需
StorageClass 的名称。
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (StorageClass): OK
201 (StorageClass): Created
401: Unauthorized
delete
删除 StorageClass
HTTP 请求
DELETE /apis/storage.k8s.io/v1/storageclasses/{name}
参数
name (路径参数): string,必需
StorageClass 的名称。
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (StorageClass): OK
202 (StorageClass): Accepted
401: Unauthorized
deletecollection
删除 StorageClass 的集合
HTTP 请求
DELETE /apis/storage.k8s.io/v1/storageclasses
参数
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
9 - Volume
import "k8s.io/api/core/v1"
Volume
Volume 表示 Pod 中一个有名字的卷,可以由 Pod 中的任意容器进行访问。
name (string),必需
卷的名称。必须是 DNS_LABEL 且在 Pod 内是唯一的。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#names
暴露的持久卷
persistentVolumeClaim (PersistentVolumeClaimVolumeSource)
persistentVolumeClaimVolumeSource 表示对同一名字空间中 PersistentVolumeClaim 的引用。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
PersistentVolumeClaimVolumeSource 引用同一名字空间中用户的 PVC。 此卷找到绑定的 PV 并为 Pod 挂载这个 PV 卷。 PersistentVolumeClaimVolumeSource 本质上是其他人(或系统)拥有的另一类卷的包装类。
persistentVolumeClaim.claimName (string),必需
claimName 是与使用此卷的 Pod 位于同一名字空间中的 PersistentVolumeClaim 的名称。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
persistentVolumeClaim.readOnly (boolean)
readOnly 将在卷挂载中强制设置 readOnly 属性。默认为 false。
投射
configMap (ConfigMapVolumeSource)
configMap 表示应填充此卷的 configMap。
将 ConfigMap 适配到一个卷中。目标 ConfigMap 的 data 字段的内容将以文件的形式呈现在一个卷中, 使用 data 字段中的键名作为文件名,除非 items 元素中已经填充了由键名到路径的特定映射。 ConfigMap 卷支持所有权管理和 SELinux 重新打标签。
- configMap.name (string)
被引用资源的名称。此字段实际上是必需的,但由于向后兼容性,可以允许为空。 此类型的实例如果将此字段的值设为空,几乎可以肯定是错误的。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#names
configMap.optional (boolean)
optional 指定是否所引用的 ConfigMap 或其键必须已经被定义。
configMap.defaultMode (int32)
defaultMode 是可选的:默认情况下,模式位用于为已创建的文件设置权限。 必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。 YAML 既接受八进制值也接受十进制值,JSON 针对模式位需要十进制值。此字段默认为 0644。 路径内的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)有冲突,且结果可以是其他模式位也被设置。
configMap.items ([]KeyToPath)
原子:将在合并期间被替换
如果未指定 items,则所引用的 ConfigMap 的 data 字段中的每个键值对将作为一个文件被投射到卷中, 这个文件的名称是键名,而文件的内容是键的取值。 如果指定 items,则所列出的键将被投射到指定的路径中,且不会显示未列出的键。 如果指定的键不在 ConfigMap 中,则卷设置将出错,除非对应的键被标记为可选。 路径必须是相对路径,不能包含 “..” 路径,也不能以 “..” 开头。
secret (SecretVolumeSource)
secret 表示用来填充此卷的 Secret。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#secret
将 Secret 适配到一个卷中。 目标 Secret 的 data 字段的内容将以文件的形式呈现在一个卷中,使用 data 字段中的键名作为文件名。 Secret 卷支持所有权管理和 SELinux 重新打标签。
secret.secretName (string)
secretName 是要使用的、位于 Pod 的名字空间中的 Secret 名称。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#secret
secret.optional (boolean)
optional 字段指定是否 Secret 或其键必须已经定义。
secret.defaultMode (int32)
defaultMode 是可选的:默认情况下,模式位用于为已创建的文件设置权限。 必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。 YAML 既接受八进制值也接受十进制值,JSON 针对模式位需要十进制值。此字段默认为 0644。 路径内的目录不受此设置的影响。 这可能与影响文件模式的其他选项(如 fsGroup)有冲突,且结果可以是其他模式位也被设置。
secret.items ([]KeyToPath)
原子:将在合并期间被替换
如果未指定 items,则所引用的 Secret 的 data 字段中的每个键值对将作为一个文件被投射到卷中, 这个文件的名称是键名,而文件的内容是键的取值。 如果指定 items,则所列出的键将被投射到指定的路径中,且不会显示未列出的键。 如果指定的键不在 Secret 中,则卷设置将出错,除非对应的键被标记为可选。 路径必须是相对路径,不能包含 “..” 路径,也不能以 “..” 开头。
downwardAPI (DownwardAPIVolumeSource)
downwardAPI 表示有关 Pod 的 Downward API,用来填充此卷。
DownwardAPIVolumeSource 表示包含 Downward API 信息的一个卷。Downward API 卷支持所有权管理和 SELinux 重新打标签。
downwardAPI.defaultMode (int32)
可选:默认情况下,模式位用于已创建的文件。 必须是可选的:默认情况下,模式位用于为已创建的文件设置权限。 必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。 YAML 既接受八进制值也接受十进制值,JSON 针对模式位需要十进制值。此字段默认为 0644。 路径内的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)有冲突,且结果可以是其他模式位也被设置。
downwardAPI.items ([]DownwardAPIVolumeFile)
原子:将在合并期间被替换
items 是 Downward API 卷文件的列表。
projected (ProjectedVolumeSource)
这是供 Secret、ConfigMap 和 Downward API 等所有资源使用的投射项。
projected.defaultMode (int32)
defaultMode 是默认情况下用于为已创建的文件设置权限的模式位。 必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。 YAML 既接受八进制值也接受十进制值,JSON 针对模式位需要十进制值。 路径内的目录不受此设置的影响。 这可能与影响文件模式的其他选项(如 fsGroup)有冲突,且结果可以是其他模式位也被设置。
projected.sources ([]VolumeProjection)
原子:将在合并期间被替换
sources 是卷投射的列表。此列表中的每个条目处理一个数据源。
这里的投射项目可能与其他受支持的卷类型一起进行投射。这些字段中必须且仅能设置一个。
projected.sources.clusterTrustBundle(ClusterTrustBundleProjection)
clusterTrustBundle 允许 Pod 访问一个自动更新的文件中 ClusterTrustBundle 对象的
.spec.trustBundle
字段。处于 Alpha 阶段,由 ClusterTrustBundleProjection 特性门控进行控制。
ClusterTrustBundle 对象可以通过名称选择,也可以通过签名者名称和标签选择算符的组合进行选择。
kubelet 对写入 Pod 文件系统的 PEM 内容进行了严格的规范化。 像跨块注释和块头这类冷门 PEM 特性被剥离。证书被去重。文件内证书的顺序是任意的,kubelet 可能会随着时间改变其顺序。
ClusterTrustBundleProjection 描述如何选择一组 ClusterTrustBundle 对象并将其内容投射到 Pod 文件系统中。
projected.sources.clusterTrustBundle.path (string),必需
相对于卷根的路径,用于写入信任包。
projected.sources.clusterTrustBundle.labelSelector(LabelSelector)
选择所有匹配此标签选择算符的 ClusterTrustBundle。仅在 signerName 被设置时有效。 与 name 互斥。如果不设置,则解释为“没有匹配项”。如果设置但为空,则解释为“匹配所有”。
projected.sources.clusterTrustBundle.name (string)
通过对象名称选择单个 clusterTrustBundle。与 signerName 和 labelSelector 互斥。
projected.sources.clusterTrustBundle.optional (boolean)
如果为 true,若引用的 ClusterTrustBundle 不可用,则不会阻止 Pod 启动。 如果使用 name,则允许指定的 ClusterTrustBundle 不存在。 如果使用 signerName,则 signerName 和 labelSelector 的组合被允许以匹配零个 ClusterTrustBundle。
projected.sources.clusterTrustBundle.signerName (string)
选择所有与此签名者名称匹配的 ClusterTrustBundle。此字段与 name 互斥。 所有选定的 ClusterTrustBundle 的内容将被统一并去重。
projected.sources.configMap (ConfigMapProjection)
与要投射的 ConfigMap 数据有关的 ConfigMap 信息。
将 ConfigMap 适配到一个投射的卷中。 目标 ConfigMap 的 Data 字段的内容将以文件的形式呈现在一个被投射的卷中, 使用 data 字段中的键名作为文件名,除非 items 元素中已经填充了由键名到路径的特定映射。 请注意,这等同于没有默认模式的 ConfigMap 卷源。
projected.sources.configMap.name (string)
被引用资源的名称。此字段实际上是必需的,但由于向后兼容性,可以允许为空。 此类型的实例如果将此字段的值设置为空,几乎可以肯定是错误的。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#names
projected.sources.configMap.optional (boolean)
optional 指定是否所引用的 ConfigMap 或其键必须已经被定义。
projected.sources.configMap.items ([]KeyToPath)
原子:将在合并期间被替换
如果未指定 items,则所引用的 ConfigMap 的 data 字段中的每个键值对将作为一个文件被投射到卷中, 这个文件的名称是键名,而文件的内容是键的取值。 如果指定 items,则所列出的键将被投射到指定的路径中,且不会显示未列出的键。 如果指定的键不在 ConfigMap 中,则卷设置将出错,除非对应的键被标记为可选。 路径必须是相对路径,不能包含 “..” 路径,也不能以 “..” 开头。
projected.sources.downwardAPI (DownwardAPIProjection)
与要投射的 downwardAPI 数据有关的 downwardAPI 信息。
表示投射到投射卷的 Downward API 信息。请注意,这等同于没有默认模式的 downwardAPI 卷源。
projected.sources.downwardAPI.items ([]DownwardAPIVolumeFile)
原子:将在合并期间被替换
items 是 DownwardAPIVolume 文件的列表。
projected.sources.secret (SecretProjection)
与要投射的 Secret 数据有关的 Secret 信息。
将 Secret 适配到一个投射卷中。 目标 Secret 的 data 字段的内容将以文件的形式呈现在一个投射卷中,使用 data 字段中的键名作为文件名。 请注意,这等同于没有默认模式的 Secret 卷源。
projected.sources.secret.name (string)
被引用资源的名称。此字段实际上是必需的,但由于向后兼容性,可以允许为空。 此类型的实例如果将此字段的值设置为空,几乎可以肯定是错误的。更多信息: https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/names/#names
projected.sources.secret.optional (boolean)
optional 字段指定是否 Secret 或其键必须已经定义。
projected.sources.secret.items ([]KeyToPath)
原子:将在合并期间被替换
如果未指定 items,则所引用的 Secret 的 data 字段中的每个键值对将作为一个文件被投射到卷中, 这个文件的名称是键名,而文件的内容是键的取值。 如果指定 items,则所列出的键将被投射到指定的路径中,且不会显示未列出的键。 如果指定的键不在 Secret 中,则卷设置将出错,除非对应的键被标记为可选。 路径必须是相对路径,不能包含 “..” 路径,也不能以 “..” 开头。
projected.sources.serviceAccountToken (ServiceAccountTokenProjection)
serviceAccountToken 是与要投射的服务账号令牌数据有关的信息。
ServiceAccountTokenProjection 表示一个投射的服务账号令牌卷。 这种投射可用于将服务账号令牌插入到 Pod 运行时文件系统,供访问 API(Kubernetes API Server 或其他)使用。
projected.sources.serviceAccountToken.path (string),必需
path 是相对于令牌投射目标文件的挂载点的路径。
projected.sources.serviceAccountToken.audience (string)
audience 是令牌的目标受众。 令牌的接收方必须用令牌受众中指定的一个标识符来标识自己,否则应拒绝此令牌。 受众默认为 apiserver 的标识符。
projected.sources.serviceAccountToken.expirationSeconds (int64)
expirationSeconds 是所请求的服务账号令牌的有效期。 当令牌即将到期时,kubelet 卷插件将主动轮换服务账号令牌。 如果令牌超过其生存时间的 80% 或令牌超过 24 小时,kubelet 将开始尝试轮换令牌。 默认为 1 小时且必须至少为 10 分钟。
本地/临时目录
emptyDir (EmptyDirVolumeSource)
emptyDir 表示与 Pod 生命周期相同的临时目录。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#emptydir
表示供 Pod 使用的一个空目录。空目录卷支持所有权管理和 SELinux 重新打标签。
emptyDir.medium (string)
medium 表示此目录应使用哪种类别的存储介质。默认为 "",这意味着使用节点的默认介质。 必须是空字符串(默认值)或 Memory。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#emptydir
emptyDir.sizeLimit (Quantity)
sizeLimit 是这个 EmptyDir 卷所需的本地存储总量。这个大小限制也适用于内存介质。 EmptyDir 的内存介质最大使用量将是此处指定的 sizeLimit 与 Pod 中所有容器内存限制总和这两个值之间的最小值。 默认为 nil,这意味着限制未被定义。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#emptydir
hostPath (HostPathVolumeSource)
hostPath 表示主机上预先存在的文件或目录,它们将被直接暴露给容器。 这种卷通常用于系统代理或允许查看主机的其他特权操作。大多数容器不需要这种卷。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#hostpath
表示映射到 Pod 中的主机路径。主机路径卷不支持所有权管理或 SELinux 重新打标签。
hostPath.path (string),必需
目录在主机上的路径。如果该路径是一个符号链接,则它将沿着链接指向真实路径。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#hostpath
hostPath.type (string)
HostPath 卷的类型。默认为 ""。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#hostpath
持久卷
awsElasticBlockStore (AWSElasticBlockStoreVolumeSource)
awsElasticBlockStore 表示挂接到 kubelet 的主机随后暴露给 Pod 的一个 AWS Disk 资源。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#awselasticblockstore
表示 AWS 上的 Persistent Disk 资源。挂载到一个容器之前 AWS EBS 磁盘必须存在。 该磁盘还必须与 kubelet 位于相同的 AWS 区域中。AWS EBS 磁盘只能以读/写一次进行挂载。 AWS EBS 卷支持所有权管理和 SELinux 重新打标签。
awsElasticBlockStore.volumeID (string),必需
volumeID 是 AWS(Amazon EBS 卷)中持久磁盘资源的唯一 ID。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#awselasticblockstore
awsElasticBlockStore.fsType (string)
fsType 是你要挂载的卷的文件系统类型。提示:确保主机操作系统支持此文件系统类型。 例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#awselasticblockstore
awsElasticBlockStore.partition (int32)
partition 是你要挂载的卷中的分区。如果省略,则默认为按卷名称进行挂载。例如:对于卷 /dev/sda1, 将分区指定为 “1”。类似地,/dev/sda 的卷分区为 “0”(或可以将属性留空)。
awsElasticBlockStore.readOnly (boolean)
readOnly 值为 true 将使得卷挂载被强制设置为 readOnly。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#awselasticblockstore
azureDisk (AzureDiskVolumeSource)
azureDisk 表示挂载到主机上并绑定挂载到 Pod 上的 Azure 数据盘。
azureDisk 表示挂载到主机上并绑定挂载到 Pod 上的 Azure 数据盘。
azureDisk.diskName (string),必需
diskName 是 Blob 存储中数据盘的名称。
azureDisk.diskURI (string),必需
diskURI 是 Blob 存储中数据盘的 URI。
azureDisk.cachingMode (string)
cachingMode 是主机缓存(Host Caching)模式:None、Read Only、Read Write。
azureDisk.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。
azureDisk.kind (string)
kind 预期值包括:
- Shared:每个存储帐户多个 Blob 磁盘;
- Dedicated:每个存储帐户单个 Blob 磁盘;
- Managed:azure 托管的数据盘(仅托管的可用性集合中)。
默认为 Shared。
azureDisk.readOnly (boolean)
readOnly 默认为 false(读/写)。此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。
azureFile (AzureFileVolumeSource)
azureDisk 表示挂载到主机上并绑定挂载到 Pod 上的 Azure File Service。
azureFile 表示挂载到主机上并绑定挂载到 Pod 上的 Azure File Service。
azureFile.secretName (string),必需
secretName 是包含 Azure 存储账号名称和主键的 Secret 的名称。
azureFile.shareName (string),必需
shareName 是 Azure 共享名称。
azureFile.readOnly (boolean)
readOnly 默认为 false(读/写)。此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。
cephfs (CephFSVolumeSource)
cephfs 表示在主机上挂载的 Ceph FS,该文件系统挂载与 Pod 的生命周期相同。
表示在 Pod 的生命周期内持续的 Ceph Filesystem 挂载。cephfs 卷不支持所有权管理或 SELinux 重新打标签。
cephfs.monitors ([]string),必需
原子:将在合并期间被替换
monitors 是必需的。monitors 是 Ceph 监测的集合。更多信息: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.path (string)
path 是可选的。用作挂载的根,而不是挂载完整的 Ceph 树,默认为 “/”。
cephfs.readOnly (boolean)
readOnly 是可选的。默认为 false(读/写)。 此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。更多信息: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.secretFile (string)
secretFile 是可选的。secretFile 是 User 对应的密钥环的路径,默认为 /etc/ceph/user.secret。更多信息: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.secretRef (LocalObjectReference)
secretRef 是可选的。secretRef 是针对用户的身份认证 Secret 的引用,默认为空。更多信息: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cephfs.user (string)
user 是可选的。user 是 rados 用户名,默认为 admin。更多信息: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
cinder (CinderVolumeSource)
cinder 表示 kubelet 主机上挂接和挂载的 Cinder 卷。更多信息: https://examples.k8s.io/mysql-cinder-pd/README.md
表示 Openstack 中的一个 Cinder 卷资源。挂载到一个容器之前 Cinder 卷必须已经存在。 该卷还必须与 kubelet 位于相同的地区中。cinder 卷支持所有权管理和 SELinux 重新打标签。
cinder.volumeID (string),必需
volumeID 用于标识 Cinder 中的卷。更多信息: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。例如:“ext4”、“xfs”、“ntfs”。 如果未指定,则隐式推断为“ext4”。更多信息: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.readOnly (boolean)
readOnly 默认为 false(读/写)。此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。 更多信息: https://examples.k8s.io/mysql-cinder-pd/README.md
cinder.secretRef (LocalObjectReference)
secretRef 是可选的。指向 Secret 对象,内含的参数用于连接到 OpenStack。
csi (CSIVolumeSource)
csi 表示由某个外部容器存储接口(Container Storage Interface,CSI)驱动处理的临时存储(Beta 特性)。
csi.driver (string),必需
driver 是处理此卷的 CSI 驱动的名称。咨询你的管理员以获取在集群中注册的正确名称。
csi.fsType (string)
要挂载的 fsType。例如 “ext4”、“xfs”、“ntfs”。 如果未提供,则将空值传递给关联的 CSI 驱动,以便决定要应用的默认文件系统。
csi.nodePublishSecretRef (LocalObjectReference)
nodePublishSecretRef 是对包含敏感信息的 Secret 对象的引用, 该 Secret 对象将被传递到 CSI 驱动以完成 CSI NodePublishVolume 和 NodeUnpublishVolume 调用。 此字段是可选的,如果不需要 Secret,则此字段可以为空。 如果 Secret 对象包含多个 Secret,则所有 Secret 引用将被传递。
csi.readOnly (boolean)
readOnly 指定供卷使用的只读配置。默认为 false(读/写)。
csi.volumeAttributes (map[string]string)
volumeAttributes 存储传递给 CSI 驱动且特定于驱动的属性。查阅你的驱动文档,了解支持的值。
ephemeral (EphemeralVolumeSource)
ephemeral 表示由一个集群存储驱动处理的卷。此卷的生命周期与定义该卷的 Pod 相关联。 Pod 启动前创建此卷,Pod 移除时删除此卷。
使用此字段的情形包括: a) 仅在 Pod 运行时才需要此卷, b) 需要从快照恢复或容量跟踪等正常卷的功能特性, c) 通过存储类指定存储驱动,以及 d) 存储驱动支持通过 PersistentVolumeClaim 进行动态卷制备 (有关此卷类型和 PersistentVolumeClaim 之间连接的更多信息,请参考 EphemeralVolumeSource)。
对于持续时间超过单个 Pod 生命周期的卷,使用 PersistentVolumeClaim 或某种特定于供应商的 API。
如果打算以这种方式使用 CSI 驱动,则将 CSI 用于轻量级本地临时卷。更多的相关信息,请参考驱动文档。
一个 Pod 可以同时使用临时卷和持久卷这两种类别的卷。
ephemeral.volumeClaimTemplate (PersistentVolumeClaimTemplate)
将用于创建独立的 PVC 以制备卷。 嵌入了 EphemeralVolumeSource 的 Pod 将是 PVC 的所有者,即 PVC 将与 Pod 一起删除。 PVC 的名称将是
<pod 名称>-<卷名称>
,其中<卷名称>
是来自PodSpec.Volumes
数组条目的名称。 如果串联的名称对于 PVC 无效(例如太长),则 Pod 验证将拒绝该 Pod。如果具有此名称的现有 PVC 不属于此 Pod,则这一 PVC 将 不会 被用于此 Pod,以避免错误地使用不相关的卷。 如果出现这种情况,Pod 的启动操作会被阻塞直到不相关的 PVC 被移除。 如果 Pod 准备使用这样一个预先创建的 PVC,那么一旦此 Pod 出现,就必须更新 PVC, 将其属主引用指向该 Pod。通常没有必要这样做,但这对手动重构损坏的集群时可能很有用。
此字段是只读的,PVC 被创建后 Kubernetes 不会对其进行任何更改。
必需,不能为 nil。
PersistentVolumeClaimTemplate 用于作为 EphemeralVolumeSource 的一部分生成 PersistentVolumeClaim 对象。
ephemeral.volumeClaimTemplate.spec (PersistentVolumeClaimSpec),必需
PersistentVolumeClaim 的规约。整个规约的内容将被原封不动地复制到从此模板创建的 PVC 中。 与 PersistentVolumeClaim 相同的字段在此处也有效。
ephemeral.volumeClaimTemplate.metadata (ObjectMeta)
可能包含一些标签和注解,在创建 PVC 时,这些数据会被复制到 PVC 中。 在验证期间,其他字段都不允许设置,即便设置也会在验证阶段被拒绝。
fc (FCVolumeSource)
fc 表示挂接到 kubelet 的主机随后暴露给 Pod 的一个 Fibre Channel 资源。
表示 Fibre Channel 卷。Fibre Channel 卷只能以读/写一次进行挂载。 Fibre Channel 卷支持所有权管理和 SELinux 重新打标签。
fc.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。
fc.lun (int32)
lun 是可选的:FC 目标 lun 编号。
fc.readOnly (boolean)
readOnly 是可选的。默认为 false(读/写)。此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。
fc.targetWWNs ([]string)
原子:将在合并期间被替换
targetWWNs 是可选的。FC 目标全球名称(WWN)。
fc.wwids ([]string)
原子:将在合并期间被替换
wwids 是可选的。FC 卷全球识别号(wwids)。 必须设置 wwids 或 targetWWNs 及 lun 的组合,但不能同时设置两者。
flexVolume (FlexVolumeSource)
flexVolume 表示使用基于 exec 的插件制备/挂接的通用卷资源。
flexVolume 表示使用基于 exec 的插件制备/挂接的通用卷资源。
flexVolume.driver (string),必需
driver 是供此卷使用的驱动的名称。
flexVolume.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。例如 “ext4”、“xfs”、“ntfs”。 默认的文件系统取决于 flexVolume 脚本。
flexVolume.options (map[string]string)
options 是可选的。此字段包含额外的命令选项(如果有)。
flexVolume.readOnly (boolean)
readOnly 是可选的。默认为 false(读/写)。此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。
flexVolume.secretRef (LocalObjectReference)
secretRef 是可选的。secretRef 是对包含敏感信息的 Secret 对象的引用,该 Secret 会被传递到插件脚本。 如果未指定 Secret 对象,则此字段可以为空。如果 Secret 对象包含多个 Secret,则所有 Secret 被传递到插件脚本。
flocker (FlockerVolumeSource)
flocker 表示挂接到一个 kubelet 主机的 Flocker 卷。Flocker 卷依赖于正在运行的 Flocker 控制服务。
表示 Flocker 代理挂载的 Flocker 卷。应设置一个且仅设置 datasetName 和 datasetUUID 中的一个。 Flocker 卷不支持所有权管理或 SELinux 重新打标签。
flocker.datasetName (string)
datasetName 是存储为元数据的数据集的名称。Flocker 数据集的名称应视为已弃用。
flocker.datasetUUID (string)
datasetUUID 是数据集的 UUID。这是 Flocker 数据集的唯一标识符。
gcePersistentDisk (GCEPersistentDiskVolumeSource)
gcePersistentDisk 表示挂接到 kubelet 的主机随后暴露给 Pod 的一个 GCE Disk 资源。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#gcepersistentdisk
表示 Google Compute Engine 中的 Persistent Disk 资源。 挂载到一个容器之前 GCE PD 必须已经存在。该磁盘还必须与 kubelet 位于相同的 GCE 项目和区域中。 GCE PD 只能挂载为读/写一次或只读多次。GCE PD 支持所有权管理和 SELinux 重新打标签。
gcePersistentDisk.pdName (string),必需
pdName 是 GCE 中 PD 资源的唯一名称。用于标识 GCE 中的磁盘。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#gcepersistentdisk
gcePersistentDisk.fsType (string)
fsType 是你要挂载的卷的文件系统类型。提示:确保主机操作系统支持此文件系统类型。 例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#gcepersistentdisk
gcePersistentDisk.partition (int32)
partition 是你要挂载的卷中的分区。如果省略,则默认为按卷名称进行挂载。 例如:对于卷 /dev/sda1,将分区指定为 “1”。类似地,/dev/sda 的卷分区为 “0”(或可以将属性留空)。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#gcepersistentdisk
gcePersistentDisk.readOnly (boolean)
此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。默认为 false。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#gcepersistentdisk
glusterfs (GlusterfsVolumeSource)
glusterfs 表示关联到主机并暴露给 Pod 的 Glusterfs 卷。由管理员配置。更多信息: https://examples.k8s.io/volumes/glusterfs/README.md
表示在 Pod 生命周期内一直存在的 Glusterfs 挂载卷。Glusterfs 卷不支持属主管理或 SELinux 重标记。
glusterfs.endpoints (string),必需
endpoints 是详细给出 Glusterfs 拓扑结构的端点的名称。更多信息: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
glusterfs.path (string),必需
path 是 Glusterfs 卷的路径。更多信息: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
glusterfs.readOnly (boolean)
此处的 readOnly 将强制以只读权限挂载 Glusterfs 卷。 默认为 false。更多信息: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
iscsi (ISCSIVolumeSource)
iscsi 表示挂接到 kubelet 的主机随后暴露给 Pod 的一个 ISCSI Disk 资源。更多信息: https://examples.k8s.io/volumes/iscsi/README.md
表示一个 ISCSI 磁盘。ISCSI 卷只能以读/写一次进行挂载。ISCSI 卷支持所有权管理和 SELinux 重新打标签。
iscsi.iqn (string),必需
iqn 是目标 iSCSI 限定名称。
iscsi.lun (int32),必需
lun 表示 iSCSI 目标逻辑单元号。
iscsi.targetPortal (string),必需
targetPortal 是 iSCSI 目标门户。 如果不是默认端口(通常是 TCP 端口 860 和 3260),则 Portal 为 IP 或 ip_addr:port。
iscsi.chapAuthDiscovery (boolean)
chapAuthDiscovery 定义是否支持 iSCSI Discovery CHAP 身份认证。
iscsi.chapAuthSession (boolean)
chapAuthSession 定义是否支持 iSCSI Session CHAP 身份认证。
iscsi.fsType (string)
fsType 是你要挂载的卷的文件系统类型。提示:确保主机操作系统支持此文件系统类型。 例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#iscsi
iscsi.initiatorName (string)
initiatorName 是自定义的 iSCSI 发起程序名称(iSCSI Initiator Name)。 如果同时用 iscsiInterface 指定 initiatorName,将为连接创建新的 iSCSI 接口 <目标门户>:<卷名称>。
iscsi.iscsiInterface (string)
iscsiInterface 是使用 iSCSI 传输的接口名称。默认为 “default”(tcp)。
iscsi.portals ([]string)
原子:将在合并期间被替换
portals 是 iSCSI 目标门户列表(iSCSI Target Portal List)。 如果不是默认端口(通常是 TCP 端口 860 和 3260),则 Portal 为 IP 或 ip_addr:port。
iscsi.readOnly (boolean)
此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。默认为 false。
iscsi.secretRef (LocalObjectReference)
secretRef 是 iSCSI 目标和发起程序身份认证所用的 CHAP Secret。
image (ImageVolumeSource)
image 表示一个在 kubelet 的主机上拉取并挂载的 OCI 对象(容器镜像或工件)。 其卷在 Pod 启动时根据提供的 PullPolicy 值进行解析:
- Always:kubelet 始终尝试拉取此引用。如果拉取失败,容器创建将失败。
- Never:kubelet 从不拉取此引用,只使用本地镜像或工件。如果引用不存在,容器创建将失败。
- IfNotPresent:如果磁盘上尚不存在此引用,kubelet 执行拉取操作。若此引用不存在且拉取失败,则容器创建将失败。
如果 Pod 被删除并重新创建,此卷会被重新解析,这意味着在 Pod 重新创建时将可以访问新的远程内容。 在 Pod 启动期间解析或拉取镜像失败将导致容器无法启动,并可能显著增加延迟。 如果失败,将使用正常的卷回退机制进行重试,并输出 Pod 失败的原因和相关消息。 此卷可以挂载的对象类型由主机上的容器运行时实现负责定义,至少必须包含容器镜像字段所支持的所有有效类型。 OCI 对象将以只读方式被挂载到单个目录(
spec.containers[*].volumeMounts.mountPath
)中。 在 Linux 上,容器运行时通常还会挂载阻止文件执行(noexec
)的卷。 不支持容器使用子路径挂载(spec.containers[*].volumeMounts.subpath
)。spec.securityContext.fsGroupChangePolicy
字段对这种卷没有效果。image.pullPolicy(字符串)
OCI 对象的拉取策略。可能的值有:
- Always:kubelet 始终尝试拉取此引用。如果拉取失败,容器创建将失败。
- Never:kubelet 从不拉取此引用,只使用本地镜像或工件。如果引用不存在,容器创建将失败。
- IfNotPresent:如果磁盘上尚不存在此引用,kubelet 执行拉取操作。
如果引用不存在且拉取失败,容器创建将失败。
如果指定了
:latest
标签,则默认为 Always,否则默认为 IfNotPresent。
image.reference (string)
必需:要使用的镜像或工件引用。行为与 pod.spec.containers[*].image 相同。 拉取 Secret 的组装方式与容器镜像所用的方式相同, 都是通过查找节点凭据、服务账户(SA)镜像拉取 Secret 和 Pod 规约镜像拉取 Secret。更多信息: https://kubernetes.io/zh-cn/docs/concepts/containers/images 此字段是可选的,以允许更高层次的配置管理在 Deployment 和 StatefulSet 这类工作负载控制器中默认或覆盖容器镜像。
nfs (NFSVolumeSource)
nfs 表示在主机上挂载的 NFS,其生命周期与 Pod 相同。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#nfs
表示 Pod 的生命周期内一直存在的 NFS 挂载。NFS 卷不支持所有权管理或 SELinux 重新打标签。
nfs.path (string),必需
path 是由 NFS 服务器导出的路径。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#nfs
nfs.server (string),必需
server 是 NFS 服务器的主机名或 IP 地址。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#nfs
nfs.readOnly (boolean)
此处 readOnly 将强制使用只读权限挂载 NFS 导出。默认为 false。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#nfs
photonPersistentDisk (PhotonPersistentDiskVolumeSource)
photonPersistentDisk 表示 kubelet 主机上挂接和挂载的 PhotonController 持久磁盘。
photonPersistentDisk.pdID (string),必需
pdID 是标识 Photon Controller 持久磁盘的 ID。
photonPersistentDisk.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。
portworxVolume (PortworxVolumeSource)
portworxVolume 表示 kubelet 主机上挂接和挂载的 portworx 卷。
PortworxVolumeSource 表示 Portworx 卷资源。
portworxVolume.volumeID (string),必需
volumeID 唯一标识 Portworx 卷。
portworxVolume.fsType (string)
fSType 表示要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如 “ext4”、“xfs”。 如果未指定,则隐式推断为 “ext4”。
portworxVolume.readOnly (boolean)
readOnly 默认为 false(读/写)。此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。
quobyte (QuobyteVolumeSource)
quobyte 表示在共享 Pod 生命周期的主机上挂载的 Quobyte。
表示在 Pod 的生命周期内持续的 Quobyte 挂载。Quobyte 卷不支持所有权管理或 SELinux 重新打标签。
quobyte.registry (string),必需
registry 表示将一个或多个 Quobyte Registry 服务指定为 host:port 对的字符串形式 (多个条目用英文逗号分隔),用作卷的中央注册表。
quobyte.volume (string),必需
volume 是按名称引用已创建的 Quobyte 卷的字符串。
quobyte.group (string)
group 是将卷访问映射到的组。默认为无组。
quobyte.readOnly (boolean)
此处 readOnly 将强制使用只读权限挂载 Quobyte 卷。默认为 false。
quobyte.tenant (string)
tenant 拥有 Backend Used 中给定的 Quobyte 卷,随动态制备的 Quobyte 卷一起使用,值由插件设置。
quobyte.user (string)
user 是将卷访问映射到的用户。默认为 serivceaccount 用户。
rbd (RBDVolumeSource)
rbd 表示在共享 Pod 生命周期的主机上挂载的 Rados Block Device。更多信息: https://examples.k8s.io/volumes/rbd/README.md
表示在 Pod 的生命周期内持续的 Rados Block Device 挂载。RBD 卷支持所有权管理和 SELinux 重新打标签。
rbd.image (string),必需
image 是 rados 镜像名称。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.monitors ([]string),必需
原子:将在合并期间被替换
monitors 是 Ceph 监测的集合。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.fsType (string)
fsType 是你要挂载的卷的文件系统类型。提示:确保主机操作系统支持此文件系统类型。 例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。更多信息: https://kubernetes.io/zh-cn/docs/concepts/storage/volumes#rbd
rbd.keyring (string)
keyring 是 RBDUser 密钥环的路径。默认为 /etc/ceph/keyring。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.pool (string)
pool 是 rados 池名称。默认为 rbd。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.readOnly (boolean)
此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。默认为 false。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.secretRef (LocalObjectReference)
secretRef 是 RBDUser 的身份认证 Secret 的名称。如果提供,则重载 keyring。默认为 nil。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
rbd.user (string)
user 是 rados 用户名。默认为 admin。更多信息: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
scaleIO (ScaleIOVolumeSource)
scaleIO 表示 Kubernetes 节点上挂接和挂载的 ScaleIO 持久卷。
ScaleIOVolumeSource 表示一个 ScaleIO 持久卷。
scaleIO.gateway (string),必需
gateway 是 ScaleIO API 网关的主机地址。
scaleIO.secretRef (LocalObjectReference),必需
secretRef 引用到 ScaleIO 用户的 Secret 和其他敏感信息。如果未提供此项,则 Login 操作将失败。
scaleIO.system (string),必需
system 是存储系统的名称,与 ScaleIO 中的配置相同。
scaleIO.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。例如 “ext4”、“xfs”、“ntfs”。默认为 “xfs”。
scaleIO.protectionDomain (string)
protectionDomain 是 ScaleIO 保护域(ScaleIO Protection Domain)的名称,用于已配置的存储。
scaleIO.readOnly (boolean)
readOnly 默认为 false(读/写)。此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。
scaleIO.sslEnabled (boolean)
sslEnabled 标志启用/禁用与网关的 SSL 通信,默认为 false。
scaleIO.storageMode (string)
storageMode 指示卷所用的存储应是 ThickProvisioned 或 ThinProvisioned。默认为 ThinProvisioned。
scaleIO.storagePool (string)
storagePool 是与保护域关联的 ScaleIO Storage Pool。
scaleIO.volumeName (string)
volumeName 是在与此卷源关联的 ScaleIO 系统中已创建的卷的名称。
storageos (StorageOSVolumeSource)
storageOS 表示 Kubernetes 节点上挂接和挂载的 StorageOS 卷。
storageos.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。
storageos.readOnly (boolean)
readOnly 默认为 false(读/写)。此处的 readOnly 将强制设置卷挂载中的 readOnly 属性。
storageos.secretRef (LocalObjectReference)
secretRef 指定用于获取 StorageOS API 凭据的 Secret。如果未指定,则将尝试使用默认值。
storageos.volumeName (string)
volumeName 是 StorageOS 卷的人类可读名称。这些卷名称在一个名字空间内是唯一的。
storageos.volumeNamespace (string)
volumeNamespace 指定 StorageOS 内卷的作用域。如果未指定名字空间,则将使用 Pod 的名字空间。 这个设置使得 Kubernetes 的名字作用域可以在 StorageOS 内进行映射,实现更紧密的集成。 将 volumeName 设为任何名称以重载默认的行为。如果你未在 StorageOS 内使用名字空间,则设为“default”。 将创建 StorageOS 内预先不存在的名字空间。
vsphereVolume (VsphereVirtualDiskVolumeSource)
vsphereVolume 表示 kubelet 主机上挂接和挂载的 vSphere 卷。
vsphereVolume.volumePath (string),必需
volumePath 是标识 vSphere 卷 vmdk 的路径。
vsphereVolume.fsType (string)
fsType 是要挂载的文件系统类型。必须是主机操作系统所支持的文件系统类型之一。 例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为 “ext4”。
vsphereVolume.storagePolicyID (string)
storagePolicyID 是与 StoragePolicyName 关联的基于存储策略的管理(SPBM)配置文件 ID。
vsphereVolume.storagePolicyName (string)
storagePolicyName 是基于存储策略的管理(SPBM)配置文件名称。
已弃用
gitRepo (GitRepoVolumeSource)
gitRepo 表示特定修订版本的 git 仓库。(注意:GitRepo 已被弃用。)如果与为某容器提速 Git 仓库, 可以先将 emptyDir 挂载到 InitContainer 上,由后者使用 git 克隆仓库,然后将 emptyDir 挂载到 Pod 的容器中。
表示用 Git 仓库的内容进行填充的一个卷。Git 仓库卷不支持所有权管理。Git 仓库卷支持 SELinux 重新打标签。 (注意:GitRepo 已被弃用。)如果与为某容器提速 Git 仓库, 可以先将 emptyDir 挂载到 InitContainer 上,由后者使用 git 克隆仓库,然后将 emptyDir 挂载到 Pod 的容器中。
gitRepo.repository (string),必需
repository 是仓库的 URL。
gitRepo.directory (string)
directory 是目标目录的名称。不得包含 “..” 或以 “..” 开头。如果提供了 “.”,则卷目录将是 Git 仓库。 否则,如果指定,卷将用给定名称的子目录中存放 Git 仓库。
gitRepo.revision (string)
revision 是指定修订版本的提交哈希值。
DownwardAPIVolumeFile
DownwardAPIVolumeFile 表示创建包含 Pod 字段的文件的信息。
path (string),必需
必需。path 是要创建的文件的相对路径名称。不得使用绝对路径,也不得包含 “..” 路径。 必须用 UTF-8 进行编码。相对路径的第一项不得用 “..” 开头。
fieldRef (ObjectFieldSelector)
必需。选择 Pod 的字段:仅支持注解、标签、名称、名字空间和 uid。
mode (int32)
可选:模式位用于设置文件的权限,必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。 YAML 既接受八进制值也接受十进制值,JSON 针对模式位需要十进制值。 如果未指定,则将使用卷 defaultMode。 这可能与影响文件模式的其他选项(如 fsGroup)有冲突,且结果可以是其他模式位也被设置。
resourceFieldRef (ResourceFieldSelector)
选择容器的资源:目前仅支持资源限制与请求(limits.cpu、limits.memory、requests.cpu 和 requests.memory)。
KeyToPath
将一个字符串键映射到卷中的一个路径。
key (string),必需
key 是要投射的键。
path (string),必需
path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素 “..”。不能以字符串 “..” 开头。
mode (int32)
mode 是可选的:模式位用于为文件设置权限。必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。 YAML 既接受八进制值也接受十进制值,JSON 针对模式位需要十进制值。 如果未指定,则将使用卷 defaultMode。 这可能与影响文件模式的其他选项(如 fsGroup)有冲突,且结果可以是其他模式位也被设置。
10 - VolumeAttachment
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
VolumeAttachment
VolumeAttachment 抓取将指定卷挂接到指定节点或从指定节点解除挂接指定卷的意图。
VolumeAttachment 对象未划分命名空间。
apiVersion: storage.k8s.io/v1
kind: VolumeAttachment
metadata (ObjectMeta)
标准的对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (VolumeAttachmentSpec),必需
spec 表示期望的挂接/解除挂接卷行为的规约。由 Kubernetes 系统填充。
status (VolumeAttachmentStatus)
status 表示 VolumeAttachment 请求的状态。由完成挂接或解除挂接操作的实体(即外部挂接器)进行填充。
VolumeAttachmentSpec
VolumeAttachmentSpec 是 VolumeAttachment 请求的规约。
attacher (string),必需
attacher 表示必须处理此请求的卷驱动的名称。这是由 GetPluginName() 返回的名称。
nodeName (string),必需
nodeName 表示卷应挂接到的节点。
source (VolumeAttachmentSource),必需
source 表示应挂接的卷。
VolumeAttachmentSource 表示应挂接的卷。现在只能通过外部挂接器挂接 PersistenVolume, 将来我们可能还允许 Pod 中的内联卷。只能设置一个成员。
source.inlineVolumeSpec (PersistentVolumeSpec)
inlineVolumeSpec 包含挂接由 Pod 的内联 VolumeSource 定义的持久卷时所有必需的信息。 仅为 CSIMigation 功能填充此字段。 它包含从 Pod 的内联 VolumeSource 转换为 PersistentVolumeSpec 的字段。 此字段处于 Beta 阶段,且只有启用 CSIMigration 功能的服务器才能使用此字段。
source.persistentVolumeName (string)
persistentVolumeName 是要挂接的持久卷的名称。
VolumeAttachmentStatus
VolumeAttachmentStatus 是 VolumeAttachment 请求的状态。
attached (boolean),必需
attached 表示卷被成功挂接。此字段只能由完成挂接操作的实体(例如外部挂接器)进行设置。
attachError (VolumeError)
attachError 表示挂接操作期间遇到的最后一个错误,如果有。 此字段只能由完成挂接操作的实体(例如外部挂接器)进行设置。
attachmentMetadata (map[string]string)
成功挂接时,attachmentMetadata 字段将由挂接操作返回的任何信息进行填充, 这些信息必须传递到后续的 WaitForAttach 或 Mount 调用中。 此字段只能由完成挂接操作的实体(例如外部挂接器)进行设置。
detachError (VolumeError)
detachError 表示解除挂接操作期间遇到的最后一个错误,如果有。 此字段只能由完成解除挂接操作的实体(例如外部挂接器)进行设置。
VolumeAttachmentList
VolumeAttachmentList 是 VolumeAttachment 对象的集合。
apiVersion: storage.k8s.io/v1
kind: VolumeAttachmentList
metadata (ListMeta)
标准的列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]VolumeAttachment),必需
items 是 VolumeAttachment 的列表。
操作
get
读取指定的 VolumeAttachment
HTTP 请求
GET /apis/storage.k8s.io/v1/volumeattachments/{name}
参数
name (路径参数): string,必需
VolumeAttachment 的名称
pretty (查询参数): string
响应
200 (VolumeAttachment): OK
401: Unauthorized
get
读取指定的 VolumeAttachment 的状态
HTTP 请求
GET /apis/storage.k8s.io/v1/volumeattachments/{name}/status
参数
name (路径参数): string,必需
VolumeAttachment 的名称
pretty (查询参数): string
响应
200 (VolumeAttachment): OK
401: Unauthorized
list
列出或观测类别为 VolumeAttachment 的对象
HTTP 请求
GET /apis/storage.k8s.io/v1/volumeattachments
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (VolumeAttachmentList): OK
401: Unauthorized
create
创建 VolumeAttachment
HTTP 请求
POST /apis/storage.k8s.io/v1/volumeattachments
参数
body: VolumeAttachment,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (VolumeAttachment): OK
201 (VolumeAttachment): Created
202 (VolumeAttachment): Accepted
401: Unauthorized
update
替换指定的 VolumeAttachment
HTTP 请求
PUT /apis/storage.k8s.io/v1/volumeattachments/{name}
参数
name (路径参数): string,必需
VolumeAttachment 的名称
body: VolumeAttachment,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (VolumeAttachment): OK
201 (VolumeAttachment): Created
401: Unauthorized
update
替换指定的 VolumeAttachment 的状态
HTTP 请求
PUT /apis/storage.k8s.io/v1/volumeattachments/{name}/status
参数
name (路径参数): string,必需
VolumeAttachment 的名称
body: VolumeAttachment,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (VolumeAttachment): OK
201 (VolumeAttachment): Created
401: Unauthorized
patch
部分更新指定的 VolumeAttachment
HTTP 请求
PATCH /apis/storage.k8s.io/v1/volumeattachments/{name}
参数
name (路径参数): string,必需
VolumeAttachment 的名称
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (VolumeAttachment): OK
201 (VolumeAttachment): Created
401: Unauthorized
patch
部分更新指定的 VolumeAttachment 的状态
HTTP 请求
PATCH /apis/storage.k8s.io/v1/volumeattachments/{name}/status
参数
name (路径参数): string,必需
VolumeAttachment 的名称
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (VolumeAttachment): OK
201 (VolumeAttachment): Created
401: Unauthorized
delete
删除 VolumeAttachment
HTTP 请求
DELETE /apis/storage.k8s.io/v1/volumeattachments/{name}
参数
name (路径参数): string,必需
VolumeAttachment 的名称
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (VolumeAttachment): OK
202 (VolumeAttachment): Accepted
401: Unauthorized
deletecollection
删除 VolumeAttachment 的集合
HTTP 请求
DELETE /apis/storage.k8s.io/v1/volumeattachments
参数
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized
11 - VolumeAttributesClass v1beta1
apiVersion: storage.k8s.io/v1beta1
import "k8s.io/api/storage/v1beta1"
VolumeAttributesClass
VolumeAttributesClass 表示由 CSI 驱动所定义的可变更卷属性的规约。 此类可以在动态制备 PersistentVolumeClaim 期间被指定, 并且可以在制备之后在 PersistentVolumeClaim 规约中更改。
apiVersion: storage.k8s.io/v1beta1
kind: VolumeAttributesClass
metadata (ObjectMeta)
标准的对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
driverName (string),必需
CSI 驱动的名称。此字段是不可变更的。
parameters (map[string]string)
parameters 保存由 CSI 驱动所定义的卷属性。这些值对 Kubernetes 是不透明的,被直接传递给 CSI 驱动。 下层存储驱动支持更改现有卷的这些属性,但 parameters 字段本身是不可变更的。 要触发一次卷更新,应该使用新的参数创建新的 VolumeAttributesClass, 并且应更新 PersistentVolumeClaim,使之引用新的 VolumeAttributesClass。
此字段是必需的,必须至少包含一个键/值对。键不能为空,参数最多 512 个,累计最大尺寸为 256K。 如果 CSI 驱动拒绝无效参数,则目标 PersistentVolumeClaim 的状态中 modifyVolumeStatus 字段将被设置为 “Infeasible”。
VolumeAttributesClassList
VolumeAttributesClassList 是 VolumeAttributesClass 对象的集合。
apiVersion: storage.k8s.io/v1beta1
kind: VolumeAttributesClassList
metadata (ListMeta)
标准的列表元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]VolumeAttributesClass),必需
items 是 VolumeAttributesClass 对象的列表。
操作
get
读取指定的 VolumeAttributesClass
HTTP 请求
GET /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}
参数
name (路径参数): string,必需
VolumeAttributesClass 的名称。
pretty (查询参数): string
响应
200 (VolumeAttributesClass): OK
401: Unauthorized
list
列举或监视类别为 VolumeAttributesClass 的对象
HTTP 请求
GET /apis/storage.k8s.io/v1beta1/volumeattributesclasses
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (VolumeAttributesClassList): OK
401: Unauthorized
create
创建 VolumeAttributesClass
HTTP 请求
POST /apis/storage.k8s.io/v1beta1/volumeattributesclasses
参数
body: VolumeAttributesClass,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (VolumeAttributesClass): OK
201 (VolumeAttributesClass): Created
202 (VolumeAttributesClass): Accepted
401: Unauthorized
update
替换指定的 VolumeAttributesClass
HTTP 请求
PUT /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}
参数
name (路径参数): string,必需
VolumeAttributesClass 的名称。
body: VolumeAttributesClass,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (VolumeAttributesClass): OK
201 (VolumeAttributesClass): Created
401: Unauthorized
patch
部分更新指定的 VolumeAttributesClass
HTTP 请求
PATCH /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}
参数
name (路径参数): string,必需
VolumeAttributesClass 的名称。
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (VolumeAttributesClass): OK
201 (VolumeAttributesClass): Created
401: Unauthorized
delete
删除 VolumeAttributesClass
HTTP 请求
DELETE /apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}
参数
name (路径参数): string,必需
VolumeAttributesClass 的名称。
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (VolumeAttributesClass): OK
202 (VolumeAttributesClass): Accepted
401: Unauthorized
deletecollection
删除 VolumeAttributesClass 的集合
HTTP 请求
DELETE /apis/storage.k8s.io/v1beta1/volumeattributesclasses
参数
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized