Kubernetes 中的 PV 和 PVC—— 动态存储卷的使用教程

阅读时长 5 分钟读完

随着容器技术的发展, Kubernetes 成为了容器编排的主流平台。在 Kubernetes 中,Pod 是最小的调度单元,并且它们通常需要持久化存储来存储数据。因此,Kubernetes 提供了多种存储选项,其中 PV 和 PVC 是其中两个重要的组件。

什么是 PV 和 PVC?

PV(Persistent Volume)是由管理员创建的持久化存储卷,可以在整个 Kubernetes 集群中的 Pod 中使用。PV 可以是各种类型的存储介质,如 NFS、HostPath、GCEPersistentDisk 和 AWS EBS 等。管理员可以通过 Kubernetes API 或 YAML 文件来创建 PV。

PVC(Persistent Volume Claim)是一个声明,用于请求 PV。它提供了 Pod 所需的存储资源和属性。PVC 在其请求的大小和访问模式上指定了需要的存储资源。PVC 与 PV 是一对多的关系,因为多个 PVC 可以请求同一个 PV。PVC 通常由应用程序开发者创建,以请求所需的存储。

简而言之,PV 提供了实际的存储卷,PVC 是程序员请求 PV 的一个声明。

PV 和 PVC 的类型

静态 PV 和 PVC

静态 PV 和 PVC 是最常见的类型。管理员通过 Kubernetes API 或 YAML 文件创建静态 PV,开发者通过 Kubernetes API 或 YAML 文件来创建静态 PVC。管理员将 PV 分配给 PVC,然后将 PVC 分配给需要进行持久化存储的 Pod。

例如,创建一个静态 PV:

-- -------------------- ---- -------
----------- --
----- ----------------
---------
  ----- --------
-----
  ----------------- --------
  ---------
    -------- ---
  ------------
    - -------------
  ---------
    ----- -----------

创建一个静态 PVC:

-- -------------------- ---- -------
----------- --
----- ---------------------
---------
  ----- ---------
-----
  ----------------- --------
  ------------
    - -------------
  ----------
    ---------
      -------- ---

静态 PVC 通常需要显式分配给 Pod。

动态 PV 和 PVC

动态 PV 和 PVC 更高效、更灵活。当动态 PVC 被创建时,Kubernetes 控制器会尝试为其分配一个 PV。管理员要在 Kubernetes 中使用动态 PV 和 PVC,需要先安装支持动态存储卷的插件,例如 Ceph 和 NFS 等。

例如,使用 Ceph 存储后端来创建动态 PVC:

-- -------------------- ---- -------
----- ------------
----------- -----------------
---------
  ----- ------------
------------ ------------
-----------
  --------- ---------------
  ----- ----
  -------- -----
  ---------------- -----------------
  --------------------- -------

---

----------- --
----- ---------------------
---------
  ----- --------
-----
  ------------
  - -------------
  ----------
    ---------
      -------- ---
  ----------------- ------------

使用动态 PVC, Pod 按需获取其所需的存储资源。

总结

Kubernetes 提供了多种存储选项,其中 PV 和 PVC 是最主要的两个。PV 提供实际的存储资源,PVC 是请求该存储资源的声明。Kubernetes 中有静态 PV 和 PVC 和动态 PV 和 PVC。静态 PV 和 PVC 是最常见的类型,动态 PV 和 PVC 更高效且更灵活。

示例代码

完整代码可在下面找到:

-- -------------------- ---- -------
----------- --
----- ----------------
---------
  ----- --------
-----
  ----------------- --------
  ---------
    -------- ---
  ------------
    - -------------
  ---------
    ----- -----------

---

----------- --
----- ---------------------
---------
  ----- ---------
-----
  ----------------- --------
  ------------
    - -------------
  ----------
    ---------
      -------- ---

---

----- ------------
----------- -----------------
---------
  ----- ------------
------------ ------------
-----------
  --------- ---------------
  ----- ----
  -------- -----
  ---------------- -----------------
  --------------------- -------

---

----------- --
----- ---------------------
---------
  ----- --------
-----
  ------------
  - -------------
  ----------
    ---------
      -------- ---
  ----------------- ------------

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65a3c731add4f0e0ffbf0266

纠错
反馈