K8S pv與pvc匹配不到的坑


創建PV和PVC時,只有相同類型的STORAGECLASS才能匹配到一起,所以要設置相同的storageClassName標簽。

申領可以通過為 storageClassName 屬性設置 StorageClass 的名稱來請求特定的存儲類。 只有所請求的類的 PV 卷,即 storageClassName 值與 PVC 設置相同的 PV 卷, 才能綁定到 PVC 申領。

PVC 申領不必一定要請求某個類。如果 PVC 的 storageClassName 屬性值設置為 "", 則被視為要請求的是沒有設置存儲類的 PV 卷,因此這一 PVC 申領只能綁定到未設置 存儲類的 PV 卷(未設置注解或者注解值為 "" 的 PersistentVolume(PV)對象在系統中不會被刪除,因為這樣做可能會引起數據丟失。 未設置 storageClassName 的 PVC 與此大不相同,也會被集群作不同處理。 具體篩查方式取決於 DefaultStorageClass 准入控制器插件 是否被啟用。

  • 如果准入控制器插件被啟用,則管理員可以設置一個默認的 StorageClass。 所有未設置 storageClassName 的 PVC 都只能綁定到隸屬於默認存儲類的 PV 卷。 設置默認 StorageClass 的工作是通過將對應 StorageClass 對象的注解 storageclass.kubernetes.io/is-default-class 賦值為 true 來完成的。 如果管理員未設置默認存儲類,集群對 PVC 創建的處理方式與未啟用准入控制器插件 時相同。如果設定的默認存儲類不止一個,准入控制插件會禁止所有創建 PVC 操作。
  • 如果准入控制器插件被關閉,則不存在默認 StorageClass 的說法。 所有未設置 storageClassName 的 PVC 都只能綁定到未設置存儲類的 PV 卷。 在這種情況下,未設置 storageClassName 的 PVC 與 storageClassName 設置未 "" 的 PVC 的處理方式相同。

取決於安裝方法,默認的 StorageClass 可能在集群安裝期間由插件管理器(Addon Manager)部署到集群中。

當某 PVC 除了請求 StorageClass 之外還設置了 selector,則這兩種需求會按 邏輯與關系處理:只有隸屬於所請求類且帶有所請求標簽的 PV 才能綁定到 PVC。

 

在PV中設置storageClassName:

 

 

在PVC中設置storageClassName:

 

 

查看是否掛在成功:

 


免責聲明!

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



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