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.

Trovare il valore predefinito di StorageClass

Elenco di tutti gli oggetti StorageClass

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get storageclasses

Nell'output, puoi vedere quale StorageClass è il valore 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 spazio di 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 oggetto StorageClass. Il controller del 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. Quindi, tutte le richieste di archiviazione che non specificano un valore di StorageClass verranno soddisfatte in base al valore StorageClass che preferisci. 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 eventuali 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 che utilizzi. Per i driver CSI, i fornitori devono fornire istruzioni per eseguire il deployment del driver CSI in un cluster Kubernetes. La documentazione di un driver CSI deve includere anche i parametri specifici del driver forniti in StorageClass, incluso il nome del provisioner.

Quando crei un oggetto StorageClass per la nuova appliance, denomina quest'ultimo in base alle sue proprietà, ad esempio "rapido" o "con alta replica", anziché dopo il nome dell'appliance o del driver specifico. In questo modo sarà più facile avere criteri di archiviazione coerenti nei cluster e in tutti gli 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

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 StorageClass.

Passaggi successivi