云容器引擎 CCE-存储卷声明PVC:使用存储类创建PVC
使用存储类创建PVC
- 使用存储类创建的底层云硬盘、文件存储和对象存储均为按需计费模式。
- 当前SFS文件存储处于售罄状态,暂时无法使用存储类csi-nas自动创建。
存储类(StorageClass)描述了集群中的存储类型“分类”,在创建PVC需要可以指定StorageClass,动态创建PV及底层存储资源。
使用控制台创建
- 登录CCE控制台。
- 进入集群,在左侧选择“容器存储”,在右侧选择“存储卷声明”页签。
- 单击右上角“创建存储声明”,在弹出的窗口中填写存储卷“声明”参数。
- 创建方式:选择“使用存储类”。
- PVC名称:指定PVC的名称。
- 存储类:选择需要的存储类型。当前支持如下几类存储动态创建。
- csi-disk:云硬盘。
- csi-local-topology:本地持久卷。
- csi-obs:对象存储。
- 可用区(仅云硬盘支持):选择云硬盘所在可用区。
- 云硬盘类型:选择云硬盘的类型。云硬盘类型在不同区域会有所不同。
- 高I/O
- 超高I/O
- 通用型SSD
- 极速型SSD
具体请参见这里了解如何选择磁盘类型。
- 访问模式:ReadWriteOnce和ReadWriteMany,具体请参见存储卷访问模式。
- 存储池(仅本地持久卷支持):显示支持本地持久卷的节点,具体请参见本地持久存储卷和临时存储卷。
- 容量(仅云硬盘和文件存储支持):存储的容量大小。仅云硬盘和文件存储需要配置,对象存储无需配置。
- 加密(仅云硬盘和文件存储支持):勾选底层存储是否加密,勾选后需要选择使用的加密密钥。仅云硬盘和文件存储支持加密。
- 密钥(仅对象存储支持):对象存储需要选择访问密钥,具体使用请参见对象存储卷挂载设置自定义访问密钥(AK/SK)。
- 企业项目(仅云硬盘和对象存储支持):集群所属的企业项目或default企业项目。
- 单击“创建”。
使用YAML创建
云硬盘YAML示例。
- failure-domain.beta.kubernetes.io/region:集群所在的region。
Region对应的值请参见地区和终端节点。
- failure-domain.beta.kubernetes.io/zone:创建云硬盘所在的可用区,必须和工作负载规划的可用区保持一致。
zone对应的值请参见地区和终端节点。
- everest.io/enterprise-project-id:企业项目ID。仅支持集群所属企业项目和default企业项目,"0"表示default企业项目。
获取方法:在CCE控制台,单击左侧栏目树中的“集群管理”,选择集群,并进入指定的集群详情页,在“基本信息”页签下找到企业项目,单击并进入对应的企业项目控制台,复制对应的ID值即可获取集群所属的企业项目的ID。
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc-evs-auto-example namespace: default annotations: everest.io/disk-volume-type: SSD # 云硬盘的类型 everest.io/crypt-key-id: 0992dbda-6340-470e-a74e-4f0db288ed82 # 可选字段,密钥的id,使用该密钥加密云硬盘 everest.io/enterprise-project-id: 86bfc701-9d9e-4871-a318-6385aa368183 # 可选字段,企业项目id,Everest需升级到1.2.33及以上版本,仅支持集群所属企业项目和default企业项目,"0"表示default企业项目。 labels: failure-domain.beta.kubernetes.io/region: cn-north-4 failure-domain.beta.kubernetes.io/zone: cn-north-4bspec: accessModes: - ReadWriteOnce # 云硬盘必须为ReadWriteOnce resources: requests: storage: 10Gi # 云硬盘大小,取值范围 1-32768 storageClassName: csi-disk # StorageClass类型为云硬盘
本地持久卷YAML示例,本地持久卷使用要求在节点上导入了本地持久卷,具体请参见本地持久存储卷和临时存储卷。
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc-local-example namespace: defaultspec: accessModes: - ReadWriteOnce # 必须为ReadWriteOnce resources: requests: storage: 10Gi # 本地持久存储卷大小 storageClassName: csi-local-topology # StorageClass类型为csi-local-topology
对象存储YAML示例:
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: obs-warm-provision-pvc namespace: default annotations: everest.io/obs-volume-type: STANDARD # 桶类型,当前支持标准(STANDARD)和低频(WARM)两种桶。 csi.storage.k8s.io/fstype: obsfs # 文件类型,obsfs表示创建并行文件系统,推荐使用;s3fs表示创建对象桶 everest.io/enterprise-project-id: 86bfc701-9d9e-4871-a318-6385aa368183 # 可选字段,企业项目id,Everest需升级到1.2.33及以上版本,仅支持集群所属企业项目和default企业项目,"0"表示default企业项目。spec: accessModes: - ReadWriteMany # 对象存储必须为ReadWriteMany resources: requests: storage: 1Gi # 此处仅为校验需要(不能为空和0),设置的大小不起作用,此处设定为固定值1Gi storageClassName: csi-obs # StorageClass类型为对象存储