依標籤排程磁碟區
基於磁碟機標籤的磁碟區排程
DirectPV 提供多種方式來限制磁碟區如何排程到磁碟機
- 可用的磁碟機空間
- 具有親和性和反親和性的節點拓撲以及類似工具
- 使用者定義的磁碟機標籤
您可以指派標籤來分類磁碟機類型。一旦指派,請在儲存類別參數中使用這些標籤來選擇所需的類型。
預設情況下,DirectPV 磁碟機沒有設定任何使用者定義的標籤。使用 kubectl directpv label drives
為 DirectPV 磁碟機設定使用者定義的標籤。
標籤僅在建立新磁碟區時限制排程,因為這是一個排程時間的過程。
教學
在本教學中,請將預留位置
<label-key>
、<label-value>
和 <drive-name>
替換為根據您選擇的分類而定的適當值-
在 DirectPV 磁碟機上設定標籤。
kubectl directpv label drives <label-key>=<label-value> --drives /dev/<drive-name>
-
使用帶有
--show-labels
旗標的list
命令來驗證標籤是否已正確設定。kubectl directpv list drives --drives /dev/<drive-name> --show-labels
-
建立或修改儲存類別定義。
在定義 YAML 中設定
parameter
值。該值應遵循directpv-min-io/<label-key>: <label-value>
的形式。parameters: directpv.min.io/<label-key>: <label-value>
參考預設的儲存類別kubectl get storageclass directpv-min-io -n directpv -o yaml
來比較並檢查新儲存類別上是否存在所有欄位。以下 YAML 是包含
parameters
區段的儲存類別定義範例allowVolumeExpansion: false allowedTopologies: - matchLabelExpressions: - key: directpv.min.io/identity values: - directpv-min-io apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: finalizers: - foregroundDeletion labels: application-name: directpv.min.io application-type: CSIDriver directpv.min.io/created-by: kubectl-directpv directpv.min.io/version: v1beta1 name: directpv-min-io-new # Define any storage class name of your choice resourceVersion: "511457" uid: e93d8dab-b182-482f-b8eb-c69d4a1ec62d parameters: fstype: xfs directpv.min.io/<label-key>: <label-value> provisioner: directpv-min-io reclaimPolicy: Delete volumeBindingMode: WaitForFirstConsumer
-
使用設定的新儲存類別名稱部署工作負載。
磁碟區僅放置在標記的磁碟機上。您可以使用以下命令驗證這一點
kubectl directpv list drives --labels <label-key>:<label-value> kubectl directpv list volumes