Un StorageClass consente di definire configurazioni di archiviazione personalizzate per soddisfare le esigenze specifiche delle tue macchine virtuali (VM) in VM Runtime on GDC. Puoi impostare una classe di archiviazione predefinita per i dischi virtuali, assegnare classi specifiche ai dischi e configurare i profili di archiviazione per gestire le modalità di accesso e di volume.
Prima di iniziare
Per completare questo documento, devi avere accesso a un cluster Google Distributed Cloud versione 1.12.0 (anthosBareMetalVersion: 1.12.0) o successiva. Puoi utilizzare qualsiasi tipo di cluster in grado di eseguire workload. Se necessario, prova Google Distributed Cloud su Compute Engine o consulta la panoramica della creazione dei cluster.
Panoramica delle classi di archiviazione
Utilizza un StorageClass per definire il tipo di archiviazione che metti a disposizione delle VM. Classi di archiviazione diverse potrebbero essere mappate a un tipo diverso di hardware di archiviazione, file system o prestazioni. Puoi creare e utilizzare le classi di archiviazione per supportare i workload di computing nel runtime VM su GDC. Per saperne di più, consulta Classi di archiviazione.
È possibile definire un StorageClass predefinito nella risorsa personalizzata per VM Runtime on GDC. Se non definisci una classe specifica quando crei un VirtualMachineDisks,, viene utilizzata questa StorageClass predefinita. Nessun StorageClass iniziale è configurato e impostato come predefinito. Nella sezione seguente, imparerai a impostare o aggiornare questa StorageClass predefinita.
Imposta o aggiorna la classe di archiviazione predefinita
Inizialmente, Google Distributed Cloud con il runtime VM su GDC non ha una StorageClass predefinita configurata. Per creare un VirtualMachineDisk senza specificare un
StorageClass, devi prima
creare un StorageClass
e poi impostarlo come predefinito.
Se vuoi impostare o aggiornare inizialmente la StorageClass predefinita utilizzata dal runtime VM su GDC quando crei un VirtualMachineDisk, aggiorna la risorsa personalizzata VMRuntime.
Modifica la risorsa personalizzata
VMRuntime:kubectl edit vmruntimeAggiungi o aggiorna la sezione
spec.storageche specifica ilStorageClasspredefinito da utilizzare:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true storage: defaultStorageClass: STORAGE_CLASS_NAME ...Sostituisci
STORAGE_CLASS_NAMEcon il nome delStorageClasspredefinito che vuoi utilizzare. Se devi prima creare unStorageClass, consulta Crea unStorageClass.Salva e chiudi la risorsa personalizzata
VMRuntimenell'editor.La chiave
StorageClassspecificata viene ora utilizzata quando crei un disco della macchina virtuale e non specifichi una chiaveStorageClass. La sezione seguente mostra come creare un disco e utilizzare un oggetto StorageClass specifico.Le risorse
VirtualMachineDiskesistenti non vengono aggiornate per utilizzare il nuovoStorageClassspecificato.
Utilizza un oggetto StorageClass specifico
Se non vuoi utilizzare il StorageClass predefinito quando crei un
VirtualMachineDisk, utilizza il campo storageClassName per specificare un
StorageClass diverso.
Per utilizzare un StorageClass specifico già definito quando crei un VirtualMachineDisk, completa i seguenti passaggi:
Crea un manifest
VirtualMachineDisk, ad esempiomy-disk.yaml, nell'editor che preferisci:nano my-disk.yamlCopia e incolla il seguente manifest YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi storageClassName: STORAGE_CLASS_NAMESostituisci i seguenti valori:
DISK_NAME: il nome del disco.STORAGE_CLASS_NAME: ilStorageClassda utilizzare per il disco. QuestoStorageClassdeve esistere già. Se devi prima creare unStorageClass, consulta Crea un oggetto StorageClass.
Salva e chiudi il manifest del disco nell'editor.
Crea il disco utilizzando
kubectl:kubectl apply -f my-disk.yaml
Configura i profili di archiviazione
I profili di archiviazione forniscono opzioni di configurazione aggiuntive associate a ogni
StorageClass. Queste opzioni di configurazione includono la modalità di accesso e la modalità di volume da utilizzare per VirtualMachineDisks che utilizza StorageClass.
Senza un profilo di archiviazione configurato, i dischi utilizzano per impostazione predefinita la modalità di accesso ReadWriteOnce. Questa modalità di accesso non è sufficiente per i workload di produzione, poiché
funzionalità come la migrazione live non funzionano. La modalità volume predefinita senza un profilo di archiviazione configurato è Filesystem.
VM Runtime on GDC genera automaticamente un profilo di archiviazione per ogni StorageClass in un cluster. Il nome del profilo di archiviazione è lo stesso del StorageClass associato. L'output di esempio seguente mostra che il cluster ha quattro classi di archiviazione e i profili associati:
$ kubectl get storageprofiles
NAME AGE
anthos-system 11d
node-disk 11d
standard 11d
nfs 11d
Per modificare un profilo di archiviazione e cambiare la modalità di accesso o di volume, completa i seguenti passaggi:
Modifica la risorsa personalizzata
StorageProfileper la modifica:kubectl edit storageprofile STORAGE_PROFILE_NAMESostituisci
STORAGE_PROFILE_NAMEconStorageProfileche vuoi modificare.Aggiungi una singola voce all'elenco
spec.claimPropertySetsdiStorageProfile:apiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: nfs spec: claimPropertySets: - accessModes: - ACCESS_MODE volumeMode: VOLUME_MODEaccessModeevolumeModeutilizzano i componenti Kubernetes sottostanti. I valori impostati dipendono dal driver di archiviazione utilizzato. Sostituisci i seguenti valori in base allo spazio di archiviazione che utilizzi:ACCESS_MODE: la modalità di accesso che vuoi utilizzare. Se supportata dallaStorageClassassociata, la modalità di accesso preferita èReadWriteMany.- I valori accettati includono
ReadWriteOnce,ReadOnlyMany,ReadWriteManyeReadWriteOncePod. Se non specificato, viene utilizzatoReadWriteOncein base ai valori predefiniti di VM Runtime on GDC. Per saperne di più, consulta Modalità di accesso.
- I valori accettati includono
VOLUME_MODE: la modalità del volume che vuoi utilizzare.- I valori accettati includono
FilesystemeBlock. Se non specificato,Filesystemviene utilizzato in base ai valori predefiniti di Kubernetes. Per ulteriori informazioni, consulta Modalità volume.
- I valori accettati includono
Salva e chiudi la risorsa personalizzata
StorageProfilenell'editor.Le impostazioni del profilo di archiviazione definite vengono utilizzate quando crei i dischi virtuali. Le risorse
VirtualMachineDiskesistenti non vengono aggiornate per utilizzare le impostazioni del profilo di archiviazione definito.