Kubernetes 中的 PV 和 PVC

阅读时长 3 分钟读完

在 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

纠错
反馈

纠错反馈