首页 » 翻译 » Kubernetes » 正文

CKA 认证系列课程笔记27 Kubernete storage

class16

 

kuberntes 中为了解决持久存储的问题,引入了新的对象:PV

因为我们docker上的临时存储都无法长久保存,pod重启就丢失了,而且pod会经常重启,所以我们就需要PV

pv 的概念相当于 是一个 磁盘,我们只是准备好了一个磁盘,可以是NFS, 也可以是hostPath(生成环境中一般都不是hostpath,因为hostpath绑定了某个节点,如果pod更换了节点就出问题了),也可以是AWS 的EBS

 

PV是一个cluster 级别的对象,也就是说,admin创建好了一批PV等着你来用,那么具体到某个namespace 是如何申请这些pv的呢? 通过pvc

我们创建了一个pvc以后,kubernete 会根据我们的需求,例如大小,读写等条件,给我们找到合适的pv并绑定给这个pvc (多个符合的就调一个最合适的)

然后我们在pod创建的时候就可以使用这个pvc了

这样,我们的pod旧可以使用我们这个Pvc了,以aws 的EBS为例,也就是说,这个volume就绑定给这个pvc了,pod 重启会自动去寻找这个pvc然后挂载这个volume,所以数据就不会丢失

上边的问题虽然好,但是太麻烦了,管理员要不断 的申请pv,管理pv ,所以我们有新的解决方案:StorageClass

StorageClass的作用就是,我们不再需要手动管理pv了,当系统检测到有pvc创建的时候,会自动的根据pvc需求的大小去创建pv (删除pvc的时候可以选择同步删除或者保留pv)

定义好storageclass以后我们pvc中使用了

这个时候就不需要提前创建pv了,全自动一条龙,这个叫dynamic pv

然后在pod中使用也是同样的:

 

 

 

 

 

 

 

 

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang

Latest posts by Zhiming Zhang (see all)