Volume Attributes Classes
Kubernetes v1.31 [beta]
(預設停用:false)本頁面假設您已熟悉 Kubernetes 中的 StorageClasses、Volume 和 PersistentVolumes。
VolumeAttributesClass 提供管理員一種方式來描述他們提供的可變「類別」儲存空間。不同的類別可能會對應到不同的服務品質等級。Kubernetes 本身對於這些類別代表什麼不持特定意見。
這是一項 Beta 功能,預設為停用。
如果您想在功能處於 Beta 階段時進行測試,您需要為 kube-controller-manager、kube-scheduler 和 kube-apiserver 啟用 VolumeAttributesClass
功能閘道。您可以使用 --feature-gates
命令列引數
--feature-gates="...,VolumeAttributesClass=true"
您也必須透過 kube-apiserver
runtime-config 啟用 storage.k8s.io/v1beta1
API 群組。您可以使用以下命令列引數
--runtime-config=storage.k8s.io/v1beta1=true
您也可以僅將 VolumeAttributesClasses 與 容器儲存介面支援的儲存搭配使用,且僅限於相關 CSI 驅動程式實作 ModifyVolume
API 的情況。
VolumeAttributesClass API
每個 VolumeAttributesClass 都包含 driverName
和 parameters
,當屬於該類別的 PersistentVolume (PV) 需要動態佈建或修改時,將會使用這些參數。
VolumeAttributesClass 物件的名稱非常重要,使用者可以透過此名稱請求特定的類別。管理員在首次建立 VolumeAttributesClass 物件時,會設定類別的名稱和其他參數。雖然 PersistentVolumeClaim
中 VolumeAttributesClass 物件的名稱是可變的,但現有類別中的參數是不可變的。
apiVersion: storage.k8s.io/v1beta1
kind: VolumeAttributesClass
metadata:
name: silver
driverName: pd.csi.storage.gke.io
parameters:
provisioned-iops: "3000"
provisioned-throughput: "50"
佈建器
每個 VolumeAttributesClass 都有一個佈建器,用於決定哪個 Volume 外掛程式用於佈建 PV。必須指定 driverName
欄位。
VolumeAttributesClass 的功能支援在 kubernetes-csi/external-provisioner 中實作。
您不限於指定 kubernetes-csi/external-provisioner。您也可以執行和指定外部佈建器,這些是獨立的程式,遵循 Kubernetes 定義的規格。外部佈建器的作者可以完全自行決定程式碼的存放位置、佈建器的交付方式、需要如何執行、使用哪個 Volume 外掛程式等等。
調整大小器
每個 VolumeAttributesClass 都有一個調整大小器,用於決定哪個 Volume 外掛程式用於修改 PV。必須指定 driverName
欄位。
VolumeAttributesClass 的修改 Volume 功能支援在 kubernetes-csi/external-resizer 中實作。
例如,現有的 PersistentVolumeClaim 正在使用名為 silver 的 VolumeAttributesClass
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pv-claim
spec:
…
volumeAttributesClassName: silver
…
叢集中提供新的 VolumeAttributesClass gold
apiVersion: storage.k8s.io/v1beta1
kind: VolumeAttributesClass
metadata:
name: gold
driverName: pd.csi.storage.gke.io
parameters:
iops: "4000"
throughput: "60"
終端使用者可以使用新的 VolumeAttributesClass gold 更新 PVC 並套用
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pv-claim
spec:
…
volumeAttributesClassName: gold
…
參數
VolumeAttributeClasses 具有參數,用於描述屬於它們的 Volume。可能會接受不同的參數,具體取決於佈建器或調整大小器。例如,參數 iops
的值 4000
和參數 throughput
是 GCE PD 特有的。當省略參數時,會在 Volume 佈建時使用預設值。如果使用者套用具有不同 VolumeAttributesClass 但省略參數的 PVC,則可能會使用參數的預設值,具體取決於 CSI 驅動程式實作。請參閱相關的 CSI 驅動程式文件以取得更多詳細資訊。
一個 VolumeAttributesClass 最多可以定義 512 個參數。參數物件 (包括其鍵和值) 的總長度不能超過 256 KiB。