Kubernetes—動態存儲卷配置(StorageClass資源)


StorageClass的介紹

  StorageClass是對存儲資源的一個抽象定義。與靜態模式的存儲卷配置(就是集群管理員手動去創建持久卷PV),StorageClass是一種動態模式的存儲卷配置。StorageClass資源同PV一樣,也不是命名空間級別的,是集群級別的。
  StorageClass資源使得集權管理員解放雙手,無需多次手動創建持久卷PV,集群管理員只需要創建不同類別的存儲類對應的StorageClass資源,供用戶的PVC資源進行引用,k8s系統會自動創建持久卷PV與持久卷聲明PVC進行綁定。
  在用戶創建持久卷聲明PVC之前,集群管理員需要創建StorageClass資源,這樣才能動態的創建新的持久卷PV。

StorageClass的作用or優勢

  1. 減少了用戶對於底層存儲資源各方面細節的關注,只需要關注自己創建的PVC資源,引用存儲類的對應StorageClass資源即可;
  2. 集群管理員將從多次創建PV這項工作中解脫出來,只要有了StorageClass資源,PVC創建引用好后,k8s系統會自動為其創建合適的PV,並且將PV和PVC綁定好,從而實現動態的資源供應。

StorageClass的定義

StorageClass主要包含了名稱、后端存儲提供者、后端存儲參數等配置;
yaml文件示例:

apiVersion: storage.k8s.io/v1beta1
kind: StorageClass
metadata:
  name: nfs-storage-test
provisioner: fuseim.pri/ifs
parameters: 
  type: xxx
  ... ...                       

關鍵配置說明:

  1. 名稱:
    metadata.name主要描述了StorageClass的名稱,主要為持久卷聲明PVC應用,在PVC的yaml文件中通過spec.storageClassName對其進行引用。

  2. 提供者:
    provisioner描述的是底層存儲資源的提供者,一般是以"kubernetes.io/"開頭,用戶也可以自定義,如上述例子。在PVC創建后,持久卷PV由該metadata.name的StorageClass資源中引用的provisioner創建。

  3. 參數:
    parameters可有可無,這是后端存儲資源提供者的一些參數設置,如果是自定義的provisioner,不一定有參數。

StorageClass常用命令

創建StorageClass資源(yaml方式)
$ kubectl create -f storageclass_test.yaml

查看StorageClass資源
$ kubectl get storageclass -n ns1
我們也可以通過縮寫進行查看kubectl get sc

查看某個StorageClass資源詳情
$ kubectl describe sc sc_name
其中,sc_name為StorageClass資源的名稱

刪除StorageClass資源
$ kubectl delete sc sc_name
其中,sc_name為StorageClass資源的名稱


免責聲明!

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



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