前面的例子中,我們提前創建了 PV,然後通過 PVC 申請 PV 並在 Pod 中使用,這種方式叫做靜態供給(Static Provision)。
與之對應的是動態供給(Dynamical Provision),即如果沒有滿足 PVC 條件的 PV,會動態創建 PV。相比靜態供給,動態供給有明顯的優勢:不需要提前創建 PV,減少了管理員的工作量,效率高。
動態供給是通過 StorageClass 實現的,StorageClass 定義瞭如何創建 PV,下面是兩個例子。
StorageClass standard
:
StorageClass slow
:
這兩個 StorageClass 都會動態創建 AWS EBS,不同在於 standard
創建的是 gp2
類型的
EBS,而 slow
創建的是 io1
類型的
EBS。不同類型的 EBS 支持的參數可參考 AWS 官方文檔。
StorageClass 支持 Delete
和 Retain
兩種 reclaimPolicy
,默認是 Delete
。
與之前一樣,PVC 在申請 PV 時,只需要指定 StorageClass 和容量以及訪問模式,比如:
除了 AWS EBS,Kubernetes 支持其他多種動態供給 PV 的 Provisioner,完整列表請參考 https://kubernetes.io/docs/concepts/storage/storage-classes/#provisioner
下一節以 MySQL 爲例演示如何在項目中使用 PV 和 PVC。
書籍:
1.《每天5分鐘玩轉Kubernetes》
https://item.jd.com/26225745440.html
2.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html
3.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html