k8s存储
·几种存储类型
1)emptyDir
emptyDir Volume的生命周期与Pod一致,Pod中的所有容器都可以共享Volume,它们可以指定各自的mount路径,当Pod从节点删除时,Volume的内容也会被删除。他所创建的空目录会在Pod的命名空间里的volumes下。
2)hostPath
hostPath Volume的作用是将Docker Host文件系统中已经存在的目录mount给Pod的容器。如果Pod被销毁了,hostPath对应的目录也还会被保留,持久性比emptyDir强,但是灵活性不足,增加了Pod与Host的耦合性,一般不建议使用。
3)静态创建基于NFS的pv
此种Volume类型的最大特点就是不依赖Kubernetes,Volume的底层基础设施由独立的存储系统管理,与Kubernetes集群是分离的,数据被持久化后,即使整个Kubernetes崩溃也不会受损,但是手动创建增加了管理员工作量,降低了效率。
3)自动创建基于NFS的pv
此种类型volume,如果没有满足PVC条件的PV,会动态创建PV。相比静态供给,动态供给有明显的优势,不需要提前创建PV,减少了管理员的工作量,效率高。
·PV
accessModes(挂载方式):
ReadWriteOnce:PV能以read-write模式mount到单个节点;
ReadOnlyMany:PV能以read-only模式mount到多个节点;
ReadWriteMany:PV能以read-write模式mount到多个节点。
persistentVolumeReclaimPolicy(回收策略):
Retain:管理员手工回收;
Recycle;删除PVC后清除PV中的数据;
Delete:删除PVC后会删除Storage Provider上的对应存储资源。
PV几种状态:
Available:资源尚未被claim;
Bound:已经绑定到某个pvc上;
Released:对应的pvc被删除,但是资源还没有被集群回收;
Failed:自动回收失败。