持久化存储之 PV、PVC、StorageClass
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了持久化存储之 PV、PVC、StorageClass相关的知识,希望对你有一定的参考价值。
参考技术A容器化一个应用比较麻烦的地方,就是对于有状态的服务的管理,最常见的状态就是 存储状态 。
创建的PVC只有和对应的PV绑定才可以使用
绑定条件:
成功绑定之后,Pod 就是声明PVC绑定的持久化存储了,使用方法如下:
Pod 只需要在 volumes 字段里声明要使用的 PVC 的name,等Pod创建后,Kubelet会将 PVC 绑定的 PV, 例如上面的 NFS 类型的 volume 挂载到容器内目录。
PVC 和 PV 的设计,其实跟“面向对象”的思想完全一致
当每次创建 PVC 声明使用存储时,都需要去手动的创建 PV,来满足 PVC 的使用。
可以用一种机制来根据用户声明的存储使用量(PVC)来动态的创建对应的持久化存储卷(PV)。k8s 用 StorageClass 来实现动态创建 持久化存储。
存储控制器 Volume Controller,是用来专门处理持久化存储的控制器,其一个子控制循环 PersistentVolumeController 负责实现 PV 和 PVC 的绑定。
PersistentVolumeController 会 watch kube-apiserver 的 PVC 对象。如果发现有 PVC对象创建,则会查看所有可用的 PV, 如果有则绑定,若没有,则会使用 StorageClass 的配置和 PVC 的描述创建 PV 进行绑定。
所谓将一个 PV 与 PVC 进行“绑定”,其实就是将这个PV对象的名字,填在了 PVC 对象的 spec.volumeName 字段上
以上是关于持久化存储之 PV、PVC、StorageClass的主要内容,如果未能解决你的问题,请参考以下文章
[kubernetes]持久化存储之StorageClass
k8sk8s存储之持久卷(pv)持久卷声明(pvc)nfs持久化存储示例
k8sk8s存储之持久卷(pv)持久卷声明(pvc)nfs持久化存储示例
Kubernetes 数据持久化之Persistent 数据卷类型