
一. Kubernetes 存储的绑定流程 #
1.1 #

三个阶段
- 第一个create阶段,主要是创建存储;
- 第二个attach阶段,就是将那块存储挂载到 node 上面(通常为将存储load到node的/dev下面);
- 第三个mount阶段,将对应的存储进一步挂载到 pod 可以使用的路径。
二. Static Provisioning && Dynamic Provisioning #
2.1 Static Provisioning #
2.2 Dynamic Provisioning #
Kubernetes pvc 动态绑定流程
只有同属于一个 StorageClass 的PV 和 PVC,才可以绑定在一起
- CSI driver动态创建pv , CSI Driver 可以动态创建PV [5]
创建pvc之后,provisioner 会创建pv ,并做pvc和pv的绑定关系
本地存储[5] #
- emptyDir
不是overlayFS ,和写主机的性能是一样的
和容器的生命周期一致,如果容器销毁, emptyDir也被销毁。 - hostPath
需要的注意点,不建议用
最佳实践[5] #
- 用户去查询集群中有哪些storageclass
可能有本地的hostpath,或者远程的nfs, ceph 等等- 在storageClass中, provisioner很重要
- pod中声明一个pvc
csi plugin把pv attach到对应的node,mount到对应的pod - pvc和pv是一一对应的关系
参考: #
- 《Kubenetes in Action》七牛容器云团队
- «深入剖析Kubernetes - 28 PV、PVC、StorageClass,这些到底在说啥?» 张磊
- «深入剖析Kubernetes - 29 PV、PVC体系是不是多此一举?从本地持久化卷谈起» 张磊
- 第9 章 : 应用存储和持久化数据卷:核心知识
- 云原生训练营 第0期-模块七