Configurazione della risorsa StorageClass predefinita

Un cluster utente ha uno o più oggetti StorageClass e uno di questi è designato come StorageClass predefinito. Questa pagina mostra come impostare il valore predefinito di StorageClass per un cluster utente.

Per ulteriori informazioni, consulta Archiviazione.

Trova il valore predefinito di StorageClass

Elenca tutte le classi di archiviazione:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get storageclasses

Nell'output, puoi vedere quale StorageClass è il predefinito. Ad esempio, nel seguente output, puoi vedere che un oggetto StorageClass denominato standard-rwo è il valore predefinito:

standard                      kubernetes.io/vsphere-volume
standard-rwo (default)        csi.vsphere.vmware.com

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

Modifica del valore predefinito di StorageClass

In qualità di amministratore del cluster, potresti voler modificare la classe di archiviazione predefinita. Quindi, tutte le richieste di archiviazione che non specificano un valore StorageClass verranno soddisfatte in base al valore StorageClass di tua scelta. Questa sezione descrive la procedura per modificare l'impostazione predefinita.

Deployment di un nuovo sistema di archiviazione

Esegui il deployment di un nuovo sistema di archiviazione e di tutti i componenti software per integrare il nuovo meccanismo di archiviazione con un cluster Kubernetes. Ad esempio, potrebbe essere necessario installare un driver CSI nel cluster.

Questo passaggio dipende dal fornitore di spazio di archiviazione utilizzato. Per i driver CSI, i fornitori devono fornire istruzioni per eseguire il deployment del driver CSI in un cluster Kubernetes. La documentazione del driver CSI deve includere anche i parametri specifici del driver che fornisci in StorageClass, incluso il nome del provisioner.

Quando crei un oggetto StorageClass per la nuova appliance, denominalo in base alle sue proprietà, ad esempio "veloce" o "altamente replicato", anziché dopo il nome del driver o dell'appliance specifici. In questo modo sarà più facile avere criteri di archiviazione coerenti nei cluster e negli ambienti.

Rimuovi l'annotazione predefinita dal valore predefinito di StorageClass

Apri il valore predefinito di StorageClass in un editor di testo:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] edit storageclass \
    DEFAULT_STORAGE_CLASS

Nell'editor di testo, rimuovi l'annotazione storageclass.kubernetes.io/is-default-class: "true". Chiudi l'editor di testo.

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

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get storageclass \
    DEFAULT_STORAGE_CLASS --output yaml

Creazione di un nuovo oggetto StorageClass

Crea 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 manifest come file YAML e crea il nuovo oggetto StorageClass:

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

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

Passaggi successivi