Kubernetes 持久化存储知识点总结

网友投稿 231 2022-11-02


Kubernetes 持久化存储知识点总结

Why PV

共享 Volume。目前 Pod 内的 Volume 其实跟 Pod 是存在静态的一一绑定关系,即生命周期绑定。这导致不同 Pod 之间无法共享 Volume。复用 Volume 中的数据。当 Pod 由于某种原因失败,被工作负载控制器删除重新创建后,我们需要能够复用 Volume 中的旧数据。Volume 自身的一些强关联诉求。对于有状态工作负载 StatefulSet 来说,当其管理的 Pod 由于所在的宿主机出现一些硬件或软件问题,比如磁盘损坏、kernel 异常等,Pod 重新“长”到别的节点上,这时该如何保证 Volume 和 Pod 之间强关联的关系?Volume 功能及语义扩展,比如容量大小、标签信息、扩缩容等。

通过 PV,我们也可以和 Pod 自身的生命周期进行解耦。一个 PV 可以被几个 Pod 同时使用,即使 Pod 被删除后,PV 这个对象依然存在,其他新的 Pod 依然可以复用。

pv属性

$ kubectl get pv task-pv-volumeNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGEtask-pv-volume 10Gi RWO Retain Bound default/task-pv-claim manual 2m12s

这里头accessMode可以指定该 PV 的几种访问挂载方式:

ReadWriteOnce(RWO)表示该卷只可以以读写方式挂载到一个 Pod 内;ReadOnlyMany( ROX)表示该卷可以挂载到多个节点上,并被多个 Pod 以只读方式挂载ReadWriteMany(RWX)表示卷可以被多个节点以读写方式挂载供多个 Pod 同时使用。

访问模式是什么?其实就是:我要使用的存储是可以被多个node共享还是只能单node独占访问(注意是node level而不是pod level)

PV ReclaimPolicy

默认是 Retain,即 PV 使用完后数据保留,需要由管理员手动清理数据。除了 Retain 外,还支持如下策略:

Recycle,即回收,这个时候会清除 PV 中的数据Delete,即删除,这个策略常在云服务商的存储服务中使用到,比如 AWS EBS。

PV 一般会有如下五种状态:

同样,对于 PVC 来说,也有如下三种状态:

Pending 表示还未绑定任何 PV;Bound 表示已经和某个 PV 进行了绑定;Lost 表示关联的 PV 失联。

Kubernetes 所支持的存储供应模式?

答:Kubernetes 支持两种资源的存储供应模式:静态模式(Static)和动态模式(Dynamic)。

StorageClass Static Provisioning

StorageClass 并不是专门为了 Dynamic Provisioning 而设计的。

而这么做的好处也很明显:这个 PVC 和 PV 的绑定关系,就完全在我自己的掌控之中。

简述 Kubernetes CSI 模型?

答:Kubernetes CSI 是 Kubernetes 推出与容器对接的存储接口标准,存储提供方只需要基于标准接口进行存储插件的实现,就能使用 Kubernetes 的原生存储机制为容器提供存储服务。

CSI 使得存储提供方的代码能和 Kubernetes 代码彻底解耦,部署也与 Kubernetes 核心组件分离,显然,存储插件的开发由提供方自行维护,就能为Kubernetes 用户提供更多的存储功能,也更加安全可靠。

CSI 包括 CSI Controller 和 CSI Node:

CSI Controller 的主要功能是提供存储服务视角对存储资源和存储卷进行管理和操作。CSI Node 的主要功能是对主机(Node)上的 Volume 进行管理和操作。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:计算机网络 数据链路层 协议知识点总结
下一篇:Java正则表达式匹配不到结果的解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~