Configurazione della classe di archiviazione predefinita

Questa pagina mostra come impostare la classe di archiviazione predefinita per un cluster GKE On-Prem. Vedi anche Spazio di archiviazione.

Panoramica

GKE On-Prem può integrarsi con l'archiviazione a blocchi o di file utilizzando uno dei seguenti meccanismi:

Quando crei un cluster, GKE On-Prem crea un oggetto StorageClass denominato standard. Si tratta dell'oggetto StorageClass predefinito per il cluster.

Per visualizzare informazioni dettagliate su standardClasse archiviazione, inserisci il seguente comando:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml

dove [CLUSTER_KUBECONFIG] è il percorso del file kubeconfig per il cluster.

Nell'output puoi vedere che il nome dell'oggetto StorageClass è standard. Puoi anche vedere l'annotazione storageclass.kubernetes.io/is-default-class: "true". Questa annotazione identifica il valore StorageClass denominato standard come StorageClass predefinito.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: standard
  ...
parameters:
  datastore: HOST2-DATASTORE2
  diskformat: thin
  fstype: ext4
provisioner: kubernetes.io/vsphere-volume
reclaimPolicy: Delete
volumeBindingMode: Immediate

Il cluster può avere diversi oggetti StorageClass, ma solo uno di loro può avere l'annotazione storageclass.kubernetes.io/is-default-class: "true", che a sua volta può essere l'oggetto StorageClass predefinito.

Nell'output precedente, puoi anche vedere che il provisioner è kubernetes.io/vSphere-volume. È il provisioner che interviene quando un client richiede uno spazio di archiviazione della classe standard.

Oggetto StorageClass predefinito

Quando richiedi l'archiviazione, puoi specificare un oggetto StorageClass. Se non specifichi un valore di StorageClass, viene utilizzato il valore predefinito StorageClass. Supponi, ad esempio, di creare un oggetto PersistentVolumeClaim che non specifica un oggetto StorageClass. Il controller del volume soddisferà la richiesta in base alla classe di archiviazione predefinita.

Modifica della classe di archiviazione predefinita

In qualità di amministratore del cluster, potresti voler cambiare la classe di archiviazione predefinita. Dopodiché tutte le richieste di archiviazione che non specificano un oggetto StorageClass verranno completate in base al valore di StorageClass scelto. Questa sezione illustra i passaggi per modificare l'impostazione predefinita.

Eseguire il deployment di un nuovo sistema di archiviazione

Esegui il deployment di un nuovo sistema di archiviazione ed eventuali componenti software per integrare il nuovo meccanismo di archiviazione con un cluster Kubernetes. Ad esempio, potresti dover eseguire il deployment di un driver CSI nel cluster.

Questo passaggio dipende dal fornitore di spazio di archiviazione utilizzato. I fornitori devono fornire istruzioni di implementazione. Per CSI, i fornitori dovrebbero fornire istruzioni per il deployment del loro driver CSI in un cluster Kubernetes.

Rimuovi l'annotazione predefinita da standard StorageClass

Per aprire il manifest di StorageClass di standard in un editor di testo, inserisci il seguente comando:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] edit storageclass standard

Rimuovi l'annotazione storageclass.kubernetes.io/is-default-class: "true" nell'editor di testo. Chiudi l'editor di testo.

Per verificare che l'annotazione sia stata rimossa, inserisci il seguente comando:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml

Crea un nuovo oggetto StorageClass

Creando un manifest per un nuovo oggetto StorageClass. Includi l'annotazione storageclass.kubernetes.io/is-default-class: "true". Ad esempio:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: my-storage-class
  ...
parameters:
  ...
provisioner: [MY_PROVISIONER]
...

Salva il file manifest come file e crea il nuovo oggetto StorageClass:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] apply -f [MANIFEST_FILE]
 

dove [MANIFEST_FILE] è il percorso del nuovo file manifest StorageClass.

Passaggi successivi