kubernetes学习笔记17:pod volumn和pod volumn claim

pod volumn可以在容器重启之后,之前的数据不丢失,可以共享数据,有本地存储和网络存储(in-tree,out-of-tree),它是独立于pod之外的,volume是存在于pod里面的,pod volune将配置信息以卷的形式挂载在容器中,容器通过posix访问数据,但是它无法准备表达数据volumn复用和共享语义,新功能难扩展,优化点在于存储和计算分离,解藕pod和volumn生命周期,像java中到具体实现类,这时诞生了persistent pod,但是它不能职责分离,不能简化user对存储的需求,不是面向对象编程抽血出来的接口,只是接口的实现,这时诞生pvc,只是对pv对一个claim声明,不负责具体实现,像java中到接口,声明方式:

"volumes":[{
      "name": "logs",
      "persistentVolumeClaim": {
              "claimName": "pvc-logs"
       }
}]

然后挂在到容器的指定目录,挂载方式:

"volumeMounts": [{
       "mountPath": "/data/logs",
       "name": "logs"
}]

然后就是使用这个/data/logs了,使用方式:

s使用shell脚本, mkdir -pv /data/logs/nginx;

用户在PVC使用存储的时候只需关心存储大小和访问模式(存储被多个node level共享还是单个node level独占,注意不是pod level,读写模式)。

pv产生方式有动态和静态两种,静态不足是cluster admin需要提前规划存储需求,而user需求是多变的,动态产生解决这个问题,集群管理员不预分配pv,写模板文件,模板文件用来创建某一类型存储所需参数,这些参数用户不关心,用户关心自己提交存储需求,也就是PVC文件,并在PVC中指定模板。

posted @ 2020-04-28 16:37  ppjj  阅读(62)  评论(0编辑  收藏  举报