K8S持久化存儲PV、PVC筆記


 
Kubernetes 使用Persistent Volume和Persistent Volume Claim 兩種API資源來管理存儲。
  • PersistentVolume  (簡稱PV):  由管理員設置的存儲,它是集群的一部分。就像節點(Node)是集群中的資源一樣,PV也是集群中的資源。它包含存儲類型,存儲大小和訪問模式。它的生命周期獨立於Pod,例如當使用它的Pod銷毀時對PV沒有影響。
  • PersistentVolumeClaim (簡稱PVC): 是用戶存儲的請求。它和Pod類似。Pod消耗Node資源,PVC消耗PV資源。Pod可以請求特定級別的資源(CPU和MEM)。PVC可以請求特定大小和訪問模式的PV。
 
  可以通過兩種方式配置PV:靜態或動態。
  •   靜態PV:集群管理員創建許多PV,它們包含可供集群用戶使用的實際存儲的詳細信息。
  •   動態PV:當管理員創建的靜態PV都不匹配用戶創建的PersistentVolumeClaim時,集群會為PVC動態的配置卷。此配置基於StorageClasses:PVC必須請求存儲類(storageclasses),並且管理員必須已創建並配置該類,以便進行動態創建。
 
關於PersistentVolume的訪問方式
  • ReadWriteOnce - 卷以讀寫方式掛載到單個節點
  • ReadOnlyMany  - 卷以只讀方式掛載到多個節點
  • ReadWriteMany - 卷以讀寫方式掛載到多個節點
 
在CLI(命令行界面)中,訪問模式縮寫為:
  • RWO - ReadWriteOnce
  • ROX - ReadOnlyMany
  • RWX - ReadWriteMany
特別注意:  卷只能一次使用一種訪問模式安裝,即使它支持很多。
 
關於回收策略
  • Retain  -  手動回收。在刪除pvc后PV變為Released不可用狀態, 若想重新被使用,需要管理員刪除pv,重新創建pv,刪除pv並不會刪除存儲的資源,只是刪除pv對象而已;若想保留數據,請使用該Retain
  • Recycle -  基本擦洗(rm -rf /thevolume/*)。 刪除pvc自動清除PV中的數據,效果相當於執行 rm -rf /thevolume/*。刪除pvc時,pv的狀態由Bound變為Available。此時可重新被pvc申請綁定。
  • Delete  -  刪除存儲上的對應存儲資源。關聯的存儲資產(如AWS EBS,GCE PD,Azure磁盤或OpenStack Cinder卷)將被刪除。NFS不支持delete策略。
 
目前,只有NFS和HostPath支持回收。AWS EBS,GCE PD,Azure磁盤和Cinder卷支持刪除。
 
關於PersistentVolume (PV) 狀態
  • Available(可用狀態)   -   一塊空閑資源還沒有被任何聲明綁定
  • Bound(綁定狀態)       -   聲明分配到PVC進行綁定,PV進入綁定狀態
  • Released(釋放狀態)    -   PVC被刪除,PV進入釋放狀態,等待回收處理
  • Failed(失敗狀態)      -   PV執行自動清理回收策略失敗
 
關於PersistentVolumeClaims (PVC) 狀態
  • Pending(等待狀態)     -   等待綁定PV
  • Bound(綁定狀態)       -   PV已綁定PVC


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM