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 maggiori informazioni, consulta Archiviazione.

Trova il valore predefinito

Elenca tutte le classi di archiviazione:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get storageclasses

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

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 valore, viene utilizzato il valore predefinito. Supponi, ad esempio, di creare un oggetto PersistentVolumeClaim che non specifica un oggetto StorageClass. Il controller di volume soddisferà la richiesta in base al valore predefinito di StorageClass.

Modifica del valore predefinito di StorageClass

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

Esegui il deployment di un nuovo sistema di archiviazione

Esegui il deployment di un nuovo sistema di archiviazione e di eventuali componenti software per l'integrazione del nuovo meccanismo di archiviazione con un cluster Kubernetes. Ad esempio, potresti dover installare un driver CSI nel cluster.

Questo passaggio dipende dal fornitore di spazio di archiviazione che utilizzi. 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 conducente forniti nel tuo oggetto StorageClass, incluso il nome del provisioner.

Quando crei un oggetto StorageClass per la nuova appliance, devi assegnare a quest'ultimo un nome in base alle sue proprietà (ad esempio "veloce" o "alta replica"), anziché dopo il nome del driver o dell'appliance specifica sottostante. In questo modo sarà più semplice disporre di criteri di archiviazione coerenti tra cluster e ambienti.

Rimuovi l'annotazione predefinita dal valore predefinito di StorageClass

Apri il campo StorageClass predefinito 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

Crea 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