在 Kubernetes 中,PV(Persistent Volume)和 PVC(Persistent Volume Claim)是两个非常重要的概念,它们用于提供持久化存储,并且是 Kubernetes 集群中应用程序中最常用的对象之一。
PV 是什么
PV 是由管理员预先设置的 Kubernetes 集群中的一个存储资源,可以访问某个持久化存储设备如磁盘或网络存储卷。因为 PV 是由管理员在整个集群范围内设置的,因此它们是集群级别资源。
一个 PV 可以由:
- NFS 存储
- iSCSI 存储
- GCE Persistent Disk
- AWS Disk
- Azure Disk
- Ceph Block Device
- Cinder (OpenStack 硬盘)等等提供支持。
PVC 是什么
PVC 是应用程序开发人员定义的,它描述了它们想要所需的存储。PVC 是基于 PV 的声明,请求某一类型的 PV。与 PV 不同,PVC 是命名空间级别的资源。
PV 和 PVC的关系
PVC 是用于向 Kubernetes 集群请求特定类别的存储。管理员可以通过创建 PV 来为 PVC 申请访问。当 PVC 与 PV 绑定时,PVC 在访问该 PV 中的数据时将被授权。
示例代码:
创建 PV
-- -------------------- ---- ------- ----------- -- ----- ---------------- --------- ----- ---- ----- --------- -------- ---- ------------ - ------------- ------------------------------ ------ ---- ----- ------- ------- -----------展开代码
创建 PVC
-- -------------------- ---- ------- --- ----------- -- ----- --------------------- --------- ----- ----------- ----- ----------------- -- ------------ - ------------- ---------- --------- -------- ---展开代码
PVC 会请求大小为 5 GB、与访问模式为 ReadWriteOnce 的存储设备。只要有名为 claim-pvc-1 的 PVC 存在,Kubernetes 将尝试在集群中的 PV 中查找 5GB 中符合相应读写模式的磁盘。
在这个例子中,PVC 将被绑定到名为 pv-1 的 PV 上,并可以开始使用。
总结
通过 PV 和 PVC 创建为应用程序提供持久性存储空间,管理员可以提供现实世界的存储解决方案,以供应用程序使用。这种方法简单易懂,因此应用程序开发人员可以便利地使用它,不必了解关于物理存储的过多信息。同时,管理员也可以获得更多的可控和可视性来管理数据存储和管理 Kubernetes 群集。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651fc30095b1f8cacd74756d