本文適用於執行 Google Distributed Cloud 的應用程式擁有者和平台管理員。本文說明如何為使用 GDC 虛擬機器執行階段的虛擬機器建立及使用儲存空間類別。StorageClass
可讓您定義不同的儲存空間設定,以滿足 VM 的各種需求。
事前準備
如要完成本文,您必須存取 Google Distributed Cloud 1.12.0 版 (anthosBareMetalVersion: 1.12.0) 以上叢集。您可以使用任何可執行工作負載的叢集類型。如有需要,請在 Compute Engine 上試用 Google Distributed Cloud,或參閱叢集建立總覽。
儲存空間級別總覽
您可以使用 StorageClass 定義可供 VM 使用的儲存空間類型。不同的儲存空間類別可能會對應到不同類型的儲存空間硬體、檔案系統或效能。您可以建立及使用儲存空間類別,在 GDC 的 VM 執行階段中支援運算工作負載。詳情請參閱「儲存空間級別」一文。
您可以在 GDC 上的 VM Runtime 自訂資源中定義預設 StorageClass。如果您在建立 VirtualMachineDisks, 時未定義特定類別,系統會使用這個預設的 StorageClass。未設定任何初始StorageClass,且未設為預設值。在下一節中,您將瞭解如何設定或更新這個預設 StorageClass。
設定或更新預設 StorageClass
一開始,Google Distributed Cloud 上的 VM Runtime 沒有預設的 StorageClass 設定。如要建立 VirtualMachineDisk 但不指定 StorageClass,請先建立 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 相關聯的額外設定選項。這些設定選項包括要為 VirtualMachineDisks 使用哪種存取模式和磁碟區模式 (StorageClass)。
如果沒有設定儲存空間設定檔,磁碟預設會採用 ReadWriteOnce 存取模式。這個存取模式不適合實際工作環境工作負載,因為即時遷移等功能無法運作。如果沒有設定儲存空間設定檔,預設音量模式為 Filesystem。
GDC 上的 VM 執行階段會自動為叢集中的每個 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。在
spec.claimPropertySets清單中新增單一項目:StorageProfileapiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: nfs spec: claimPropertySets: - accessModes: - ACCESS_MODE volumeMode: VOLUME_MODEaccessMode和volumeMode使用基礎 Kubernetes 元件。您設定的值取決於使用的儲存空間驅動程式。請視您使用的儲存空間,適當替換下列值:在編輯器中儲存並關閉
StorageProfile自訂資源。現在建立任何虛擬磁碟時,都會使用您定義的儲存空間設定檔設定。現有
VirtualMachineDisk資源不會更新,因此無法使用定義的儲存空間設定檔設定。