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.