文档中心 容器服务 数据卷概述

数据卷概述

更新时间:2022-04-14 10:14:39

数据卷概述

默认情况下容器中的磁盘文件是非持久化的,因此对于运行在容器中的应用来说面临两个问题,一是数据持久化:当容器挂掉kubelet将重启启动它时,文件将会丢失;二是数据共享:当容器组Pod中同时运行多个容器,容器之间需要共享文件时。Kubernetes的数据卷(Volume)解决了这两个问题。

网宿云容器服务采用的是Kubernetes的数据卷的概念,Kubernetes数据卷具有明确的生命周期管理,因此,数据卷的生命周期比Pod中运行的任何容器要持久,在容器重新启动时能可以保留数据。容器服务支持网宿云硬盘、NFS,容器组(Pod)可以使用任意数量的数据卷。更多详细的原理,请参考Kubernetes Persistent Volumes

数据卷(Volume)使用原则

  • 一个Pod可以挂载多个数据卷(Volume)。
  • 一个Pod可以挂载多种类型的数据卷(Volume)。
  • 每个被Pod挂载的Volume卷,可以在不同的容器间共享。
  • Kubernetes环境推荐使用PVC和PV方式挂载数据卷(Volume)。
  • 虽然单Pod可以挂载多个数据卷(Volume),但是并不建议给一个Pod挂载过多数据卷。

PV与PVC
Kubernetes抽象了PV(PersistentVolume)和PVC(PersistentVolumeClaim)来定义和使用存储,从而让使用者不用关心具体的基础设施,当需要存储资源的时候,只要像CPU和内存一样,声明要多少即可。

  • PV:PV是PersistentVolume的缩写,译为持久化存储卷。PV在Kubernetes中代表一个具体存储类型的卷,其对象中定义了具体存储类型和卷参数。即目标存储服务所有相关的信息都保存在PV中,Kubernetes引用PV中的存储信息执行挂载操作。
  • PVC:PVC是PersistentVolumeClaim的缩写,译为存储声明。PVC是在Kubernetes中一种抽象的存储卷类型,代表了某个具体类型存储的数据卷表达。其设计意图是分离存储与应用编排,将存储细节抽象出来并实现存储的编排。这样Kubernetes中存储卷对象独立于应用编排而单独存在,在编排层面使应用和存储解耦。在Pod中可以使用Volume关联PVC,即可让Pod使用到存储资源。

StorageClass
StorageClass描述了集群中的存储类型“分类”,在创建PVC/PV均需要指定StorageClass。目前容器服务默认提供wangsucloud-standard、wangsucloud-ssd、wangsucloud-nfs-small、wangsucloud-nfs-mid、wangsucloud-nfs-large 等StorageClass,在声明PVC时使用对应StorageClassName,就可以创建对应类型PV,并自动创建底层的存储资源。
执行如下命令即可查询爱捷云容器云提供的默认StorageClass,以1.20版本集群为例:

#kubectl get sc
NAME                    PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
wangsucloud-nfs-large   manila.csi.openstack.org   Delete          Immediate           false                  35d  #文件存储StorageClass
wangsucloud-nfs-mid     manila.csi.openstack.org   Delete          Immediate           false                  35d  #文件存储StorageClass
wangsucloud-nfs-small   manila.csi.openstack.org   Delete          Immediate           false                  35d  #文件存储StorageClass
wangsucloud-ssd         cinder.csi.openstack.org    Delete          Immediate           true                   35d  #SSD云盘StorageClass
wangsucloud-standard    cinder.csi.openstack.org   Delete          Immediate           true                   35d  #性能型云盘StorageClass


使用限制: 边缘版集群和纳管集群不支持挂载数据卷。

本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!