Gestire le classi di storage
È possibile visualizzare le classi di storage esistenti, impostare una classe di storage predefinita, identificare il backend della classe di storage ed eliminare le classi di storage.
Visualizzare le classi di storage esistenti
-
Per visualizzare le classi di storage Kubernetes esistenti, eseguire il seguente comando:
kubectl get storageclass
-
Per visualizzare i dettagli della classe storage Kubernetes, eseguire il seguente comando:
kubectl get storageclass <storage-class> -o json
-
Per visualizzare le classi di archiviazione sincronizzata di Trident, eseguire il comando seguente:
tridentctl get storageclass
-
Per visualizzare i dettagli della classe di archiviazione sincronizzata di Trident, eseguire il comando seguente:
tridentctl get storageclass <storage-class> -o json
Impostare una classe di storage predefinita
Kubernetes 1.6 ha aggiunto la possibilità di impostare una classe di storage predefinita. Si tratta della classe di storage che verrà utilizzata per eseguire il provisioning di un volume persistente se un utente non ne specifica uno in un PVC (Persistent Volume Claim).
-
Definire una classe di storage predefinita impostando l'annotazione
storageclass.kubernetes.io/is-default-class
a true nella definizione della classe di storage. In base alla specifica, qualsiasi altro valore o assenza di annotazione viene interpretato come falso. -
È possibile configurare una classe di storage esistente come classe di storage predefinita utilizzando il seguente comando:
kubectl patch storageclass <storage-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
-
Allo stesso modo, è possibile rimuovere l'annotazione predefinita della classe di storage utilizzando il seguente comando:
kubectl patch storageclass <storage-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
Nel bundle del programma di installazione di Trident sono presenti anche alcuni esempi che includono questa annotazione.
Nel cluster deve essere presente una sola classe di archiviazione predefinita alla volta. Kubernetes non impedisce tecnicamente di averne più di una, ma si comporta come se non ci fosse alcuna classe di storage predefinita. |
Identificare il backend per una classe di storage
Questo è un esempio del tipo di domande a cui è possibile rispondere con il JSON che tridentctl
emette per gli oggetti back-end Trident. In questo modo viene utilizzata l' `jq`utilità, che potrebbe essere necessario installare per prima.
tridentctl get storageclass -o json | jq '[.items[] | {storageClass: .Config.name, backends: [.storage]|unique}]'
Eliminare una classe di storage
Per eliminare una classe di storage da Kubernetes, eseguire il seguente comando:
kubectl delete storageclass <storage-class>
<storage-class>
deve essere sostituito con la classe di storage.
Tutti i volumi persistenti creati tramite questa classe di storage non verranno toccati e Trident continuerà a gestirli.
Trident applica uno spazio vuoto fsType ai volumi che crea. Per i backend iSCSI, si consiglia di applicare parameters.fsType in StorageClass. È necessario eliminare gli StorageClasses esistenti e ricrearli con parameters.fsType specificato.
|