StorageClass可讓您定義量身打造的儲存空間設定,滿足 GDC VM 執行階段中虛擬機器 (VM) 的特定需求。您可以為虛擬磁碟設定預設儲存空間級別、為磁碟指派特定級別,以及設定儲存空間設定檔,以便管理存取權和磁碟區模式。
事前準備
如要完成這份文件,您必須具備 Google Distributed Cloud 1.12.0 版 (anthosBareMetalVersion: 1.12.0) 以上叢集的存取權。您可以使用任何能執行工作負載的叢集類型。如有需要,請在 Compute Engine 上試用 Google Distributed Cloud,或參閱叢集建立總覽。
儲存空間級別總覽
您可以使用 StorageClass 定義要提供給 VM 的儲存空間類型。不同的儲存空間類別可能會對應至不同類型的儲存硬體、檔案系統或效能。您可以建立及使用儲存空間級別,支援 VM Runtime on GDC 中的運算工作負載。詳情請參閱「儲存空間級別」。
您可以在 GDC VM 執行階段的自訂資源中,定義預設 StorageClass。建立 VirtualMachineDisks, 時,如未定義特定類別,系統會使用這個預設 StorageClass。未設定初始 StorageClass,並設為預設值。在下一節中,您將瞭解如何設定或更新這個預設 StorageClass。
設定或更新預設 StorageClass
一開始,Google Distributed Cloud 搭配 GDC 上的 VM 執行階段時,並未設定預設 StorageClass。如要在不指定 StorageClass 的情況下建立 VirtualMachineDisk,您必須先建立 StorageClass,然後將其設為預設值。
如要一開始就設定或更新 GDC VM 執行階段在您建立 VirtualMachineDisk 時使用的預設 StorageClass,請更新 VMRuntime 自訂資源。
編輯
VMRuntime自訂資源:kubectl edit vmruntime新增或更新
spec.storage區段,指定要使用的預設StorageClass:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true storage: defaultStorageClass: STORAGE_CLASS_NAME ...將
STORAGE_CLASS_NAME編輯為要使用的預設StorageClass名稱。如需先建立StorageClass,請參閱「建立StorageClass」。在編輯器中儲存並關閉
VMRuntime自訂資源。現在,當您建立虛擬機器磁碟且未指定
StorageClass時,系統會使用您指定的StorageClass。下一節將說明如何建立磁碟並使用特定 StorageClass。現有的
VirtualMachineDisk資源不會更新為使用新指定的StorageClass。
使用特定 StorageClass
建立 VirtualMachineDisk 時,如果不想使用預設的 StorageClass,請使用 storageClassName 欄位指定其他 StorageClass。
如要在建立 VirtualMachineDisk 時使用特定且已定義的 StorageClass,請完成下列步驟:
在您選擇的編輯器中建立
VirtualMachineDisk資訊清單,例如my-disk.yaml:nano my-disk.yaml複製並貼上下列 YAML 資訊清單:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi storageClassName: STORAGE_CLASS_NAME替換下列值:
DISK_NAME:磁碟名稱。STORAGE_CLASS_NAME:磁碟要使用的StorageClass。這個StorageClass必須已存在。如需先建立StorageClass,請參閱「建立 StorageClass」。
儲存並關閉編輯器中的磁碟資訊清單。
使用
kubectl建立磁碟:kubectl apply -f my-disk.yaml
設定儲存空間設定檔
儲存空間設定檔提供與每個 StorageClass 相關聯的額外設定選項。這些設定選項包括要為使用 StorageClass 的 VirtualMachineDisks 採用哪種存取模式和磁碟區模式。
如果未設定儲存空間設定檔,磁碟會預設為 ReadWriteOnce 存取模式。這個存取模式不適用於正式環境工作負載,因為即時遷移等功能無法運作。如果未設定儲存空間設定檔,預設磁碟區模式為 Filesystem。
VM Runtime on GDC 會自動為叢集中的每個 StorageClass 產生一個儲存空間設定檔。儲存空間設定檔的名稱與相關聯的 StorageClass 相同。以下輸出內容範例顯示叢集有四個儲存空間類別和相關聯的設定檔:
$ kubectl get storageprofiles
NAME AGE
anthos-system 11d
node-disk 11d
standard 11d
nfs 11d
如要編輯儲存空間設定檔,並變更存取模式或磁碟區模式,請完成下列步驟:
編輯
StorageProfile自訂資源:kubectl edit storageprofile STORAGE_PROFILE_NAME將
STORAGE_PROFILE_NAME替換為要編輯的StorageProfile。在
StorageProfile的spec.claimPropertySets清單中新增單一項目:apiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: nfs spec: claimPropertySets: - accessModes: - ACCESS_MODE volumeMode: VOLUME_MODEaccessMode和volumeMode使用基礎 Kubernetes 元件。設定的值取決於您使用的儲存空間驅動程式。請根據您使用的儲存空間,適當替換下列值:在編輯器中儲存並關閉
StorageProfile自訂資源。現在建立任何虛擬磁碟時,系統都會使用您定義的儲存空間設定檔。現有的
VirtualMachineDisk資源不會更新為使用定義的儲存空間設定檔。