本文適用於執行 Google Distributed Cloud 的應用程式擁有者和平台管理員。本文說明如何為使用 GDC 上的 VM 執行階段的 VM 建立及使用儲存空間類別。StorageClass
可讓您定義不同的儲存空間設定,滿足 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 上的 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
相關聯的額外設定選項。這些設定選項包括要為使用 StorageClass
的 VirtualMachineDisks
使用哪種存取模式和磁碟區模式。
如果沒有設定儲存空間設定檔,磁碟預設會採用 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
清單中新增單一項目:StorageProfile
apiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: nfs spec: claimPropertySets: - accessModes: - ACCESS_MODE volumeMode: VOLUME_MODE
accessMode
和volumeMode
使用基礎 Kubernetes 元件。您設定的值取決於使用的儲存空間驅動程式。請視使用的儲存空間,將下列值替換為適當的值:在編輯器中儲存並關閉
StorageProfile
自訂資源。現在建立任何虛擬磁碟時,都會使用您定義的儲存空間設定檔設定。現有
VirtualMachineDisk
資源不會更新,因此無法使用已定義的儲存空間設定檔設定。