更新时间:2024-12-04 GMT+08:00

创建PVC(待废弃)

功能介绍

该API用于在指定的Namespace下通过云存储服务中的云存储(EVS、SFS、OBS)去创建PVC(PersistentVolumeClaim)。该API待废弃,请使用Kubernetes PVC相关接口。

存储管理的URL格式为:https://{clusterid}.Endpoint/uri。其中{clusterid}为集群ID,uri为资源路径,也即API访问的路径。如果使用https://Endpoint/uri,则必须指定请求header中的X-Cluster-ID参数。

URI

POST /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims

表1 路径参数

参数

是否必选

参数类型

描述

namespace

String

指定PersistentVolumeClaim所在的命名空间。

使用namespace有如下约束:

  • 用户自定义的namespace,使用前必须先在集群中创建namespace

  • 系统自带的namespace:default

  • 不能使用kube-system与kube-public

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

消息体的类型(格式)

X-Auth-Token

String

调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token

X-Cluster-ID

String

集群ID,使用https://Endpoint/uri这种URL格式时必须指定此参数。获取方式请参见如何获取接口URI中参数

表3 请求Body参数

参数

是否必选

参数类型

描述

apiVersion

String

API版本,固定值v1

kind

String

API类型,固定值PersistentVolumeClaim

metadata

PersistentVolumeClaimMetadata object

metadata是集群对象的元数据定义,是集合类的元素类型,包含一组由不同名称定义的属性。

spec

PersistentVolumeClaimSpec object

spec是集合类的元素类型,用户对需要管理的集群对象进行详细描述的主体部分都在spec中给出。系统通过spec的描述来创建或更新对象。

status

PersistentVolumeClaimStatus object

status是当前PersistentVolumeClaim的状态信息,创建时不需要添加status参数。

表4 PersistentVolumeClaimMetadata

参数

是否必选

参数类型

描述

name

String

PersistentVolumeClaim名称,可以包含小写字母、数字、连字符和点,开头和结尾必须是字母或数字,最长253个字符,同一namespace下name不能重复。

labels

String

PersistentVolumeClaim标签,key/value对格式。

  • Key:必须以字母或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符;另外可以使用DNS子域作为前缀,例如example.com/my-key,DNS子域最长253个字符。

  • Value:可以为空或者非空字符串,非空字符串必须以字符或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符。

表5 PersistentVolumeClaimSpec

参数

是否必选

参数类型

描述

volumeID

String

资源需为已经存在的存储资源

  • 如果存储资源类型是SFS、EVS、SFS-Turbo,本参数需要填入对应资源的ID

  • 如果资源类型为OBS,本参数填入OBS名称

storageType

String

云存储的类型,和volumeID搭配使用。即volumeID和storageType必须同时被配置。

  • bs:EVS云存储

  • nfs:SFS弹性文件存储

  • obs:OBS对象存储

  • efs:SFS Turbo极速文件存储

accessModes

Array of strings

指定volume应该具有的访问模式,列表中仅第一个配置参数有效。

  • ReadWriteOnce:该卷可以被单个节点以读/写模式挂载

    说明:

    集群版本为v1.13.10且storage-driver版本为1.0.19时,才支持此功能。

  • ReadOnlyMany:该卷可以被多个节点以只读模式挂载(默认)

  • ReadWriteMany:该卷可以被多个节点以读/写模式挂载

storageClassName

String

PVC的StorageClass名称

volumeName

String

PVC绑定的PV名称

resources

ResourceRequirements object

资源需求和限制

volumeMode

String

PVC指定的PV类型

表6 ResourceRequirements

参数

是否必选

参数类型

描述

limits

Map<String,String>

资源限制,创建时指定无效

requests

Map<String,String>

资源需求,创建时指定无效

表7 PersistentVolumeClaimStatus

参数

是否必选

参数类型

描述

accessModes

Array of strings

显示volume实际具有的访问模式。

capacity

String

底层卷的实际资源

phase

String

PersistentVolumeClaim当前所处的状态

响应参数

状态码: 201

表8 响应Body参数

参数

参数类型

描述

apiVersion

String

API版本,固定值v1

kind

String

API类型,固定值PersistentVolumeClaim

metadata

PersistentVolumeClaimMetadata object

metadata是集群对象的元数据定义,是集合类的元素类型,包含一组由不同名称定义的属性。

spec

PersistentVolumeClaimSpec object

spec是集合类的元素类型,用户对需要管理的集群对象进行详细描述的主体部分都在spec中给出。系统通过spec的描述来创建或更新对象。

status

PersistentVolumeClaimStatus object

status是当前PersistentVolumeClaim的状态信息,创建时不需要添加status参数。

表9 PersistentVolumeClaimMetadata

参数

参数类型

描述

name

String

PersistentVolumeClaim名称,可以包含小写字母、数字、连字符和点,开头和结尾必须是字母或数字,最长253个字符,同一namespace下name不能重复。

labels

String

PersistentVolumeClaim标签,key/value对格式。

  • Key:必须以字母或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符;另外可以使用DNS子域作为前缀,例如example.com/my-key,DNS子域最长253个字符。

  • Value:可以为空或者非空字符串,非空字符串必须以字符或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符。

表10 PersistentVolumeClaimSpec

参数

参数类型

描述

volumeID

String

资源需为已经存在的存储资源

  • 如果存储资源类型是SFS、EVS、SFS-Turbo,本参数需要填入对应资源的ID

  • 如果资源类型为OBS,本参数填入OBS名称

storageType

String

云存储的类型,和volumeID搭配使用。即volumeID和storageType必须同时被配置。

  • bs:EVS云存储

  • nfs:SFS弹性文件存储

  • obs:OBS对象存储

  • efs:SFS Turbo极速文件存储

accessModes

Array of strings

指定volume应该具有的访问模式,列表中仅第一个配置参数有效。

  • ReadWriteOnce:该卷可以被单个节点以读/写模式挂载

    说明:

    集群版本为v1.13.10且storage-driver版本为1.0.19时,才支持此功能。

  • ReadOnlyMany:该卷可以被多个节点以只读模式挂载(默认)

  • ReadWriteMany:该卷可以被多个节点以读/写模式挂载

storageClassName

String

PVC的StorageClass名称

volumeName

String

PVC绑定的PV名称

resources

ResourceRequirements object

资源需求和限制

volumeMode

String

PVC指定的PV类型

表11 ResourceRequirements

参数

参数类型

描述

limits

Map<String,String>

资源限制,创建时指定无效

requests

Map<String,String>

资源需求,创建时指定无效

表12 PersistentVolumeClaimStatus

参数

参数类型

描述

accessModes

Array of strings

显示volume实际具有的访问模式。

capacity

String

底层卷的实际资源

phase

String

PersistentVolumeClaim当前所处的状态

请求示例

指定EVS云硬盘ID创建PersistentVolumeClaim

POST /api/v1/namespaces/default/cloudpersistentvolumeclaims

{
  "apiVersion" : "v1",
  "kind" : "PersistentVolumeClaim",
  "metadata" : {
    "name" : "csms-dev-create",
    "namespace" : "default"
  },
  "spec" : {
    "volumeID" : "86b29e16-23db-11e7-9c83-fa163ec08232",
    "storageType" : "bs",
    "accessModes" : [ "ReadWriteMany" ]
  }
}

响应示例

状态码: 201

创建PersistentVolumeClaim作业下发成功。

{
  "kind" : "PersistentVolumeClaim",
  "apiVersion" : "v1",
  "metadata" : {
    "name" : " csms-dev-create ",
    "namespace" : "default",
    "selfLink" : "/api/v1/namespaces/default/persistentvolumeclaims/db-mysql-0",
    "uid" : "86b29e16-23db-11e7-9c83-fa163ec08232",
    "resourceVersion" : "1793115",
    "creationTimestamp" : "2017-04-18T02:05:42Z"
  },
  "spec" : {
    "volumeName" : "csms-dev-create ",
    "accessModes" : [ "ReadWriteMany" ],
    "resources" : {
      "requests" : {
        "storage" : "1Gi"
      }
    }
  },
  "status" : {
    "phase" : "Pending",
    "accessModes" : [ "ReadWriteMany" ]
  }
}

状态码

状态码

描述

201

创建PersistentVolumeClaim作业下发成功。

错误码

请参见错误码