kubernets之持久卷的動態配置
阿新 • • 發佈:2020-12-30
一 介紹持久卷的動態配置原理
前面介紹的pv以及pvc,都需要kubernets叢集管理員來支援實際的底層儲存,但是kubernets還支援動態配置持久捲來自動化完成這個任務叢集管理員可以建立一個持久卷配置,並定義一個或多個StorageClass,從而讓使用者選擇他們想要的持久卷型別,使用者可以在其持久卷聲明裡面引用StorageClass,而配置程式會根據PVC裡面對儲存的大小以及訪問模式建立符合條件的PV,最後使用者在pod中根據名稱引用pvc。
二 利用StorageClass資源定義可用儲存型別
在使用者建立持久卷宣告之前,管理員需要建立一個或者多個ClassStorage資源,然後才能建立新的持久卷
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ex-sc provisioner: kubernets.io/gce-pd parameters: type: pd-ssd zone: europe-west1-b
- provisioner為配置持久卷的卷外掛
- paramters傳遞給paramters的引數
三 使用者在持久卷宣告中引用StorageClass的名稱
使用者可以在pvc裡面引用SC的名稱
apiVersion: v1 kind: persistentvolumeClaim metadata: name: ex-pvc-sc spec: storageClassName: ex-sc resources: requests: storage: 100Mi accessModes: - ReadWriteOnce
- 在這個pvc的定義中指定了需要引用的StorageClass的名稱
- 如果指定的SC不存在會看到配置程式失敗
- 可以看到確實生成了一個pv,並且其大小和訪問模式都符合使用者建立的pvc,並且預設的回收策略是Delete
- 並且配置程式還會為pv提供真實的儲存空間
四 儲存類
4.1 瞭解儲存類的使用優點
叢集管理員提供各種各樣的儲存類,之後研發人員再決定對應用使用哪一個最合適的儲存類,SC的好處在於,宣告是通過名稱來引用它的,因此在不同的叢集中,只要SC的名稱相同,那麼pvc就可以在不同的叢集間進行移植。
4.2 更簡單的使用持久化儲存的方式
叢集裡面都有儲存類,都使用者在建立pvc的時候不指明使用儲存類的時候,會去使用預設的儲存類
4.3 若使用者希望不使用配置程式來自動化去建立pv,僅僅需要在pvc裡面此般配置即可
...... kind: persistentvolumeclaim spec: storageClassName: ""
4.4 最後通過一幅圖來完整了解動態持久卷供應全貌
- 如果叢集內部尚未持久卷配備程式,則管理員的首要任務則是在叢集內部建立持久卷配備程式
- 管理員建立一個或者多個SrorageClass並將其標記為預設值(如果不存在)
- 使用者建立一個pvc引用其中一個StorageClass或者直接使用預設值
- kubernets查詢其中引用的StorageClass和配置程式並根據PVC請求的大小和訪問模式以及引數在StorageClass配置新的PV
- 置備程式指定了真實的儲存,建立一個持久卷,並將其繫結PVC
- 使用者穿件一個包含名稱引用PVC的儲存卷pod