Speicherklassen verwalten
Sie können vorhandene Speicherklassen anzeigen, eine Standard-Speicherklasse festlegen, das Backend der Speicherklasse identifizieren und Speicherklassen löschen.
Die vorhandenen Speicherklassen anzeigen
-
Um vorhandene Kubernetes-Speicherklassen anzuzeigen, führen Sie folgenden Befehl aus:
kubectl get storageclass
-
Um Details zur Kubernetes-Speicherklasse anzuzeigen, führen Sie folgenden Befehl aus:
kubectl get storageclass <storage-class> -o json
-
Um die synchronisierten Speicherklassen von Trident anzuzeigen, führen Sie folgenden Befehl aus:
tridentctl get storageclass
-
Um die Details der synchronisierten Speicherklasse von Trident anzuzeigen, führen Sie folgenden Befehl aus:
tridentctl get storageclass <storage-class> -o json
Legen Sie eine Standardspeicherklasse fest
Mit Kubernetes 1.6 wurde die Möglichkeit eingeführt, eine Standard-Speicherklasse festzulegen. Dies ist die Speicherklasse, die zur Bereitstellung eines Persistent Volume verwendet wird, wenn ein Benutzer in einem Persistent Volume Claim (PVC) kein Persistent Volume angibt.
-
Definieren Sie eine Standard-Speicherklasse durch Festlegen der Annotation.
storageclass.kubernetes.io/is-default-classin der Definition der Speicherklasse auf „true“ setzen. Gemäß der Spezifikation wird jeder andere Wert oder das Fehlen der Annotation als falsch interpretiert. -
Sie können eine vorhandene Speicherklasse als Standardspeicherklasse konfigurieren, indem Sie den folgenden Befehl verwenden:
kubectl patch storageclass <storage-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
-
Ebenso können Sie die Standard-Speicherklassenannotation mit folgendem Befehl entfernen:
kubectl patch storageclass <storage-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
Im Trident -Installationspaket sind auch Beispiele enthalten, die diese Annotation beinhalten.
|
|
Es sollte immer nur eine Standard-Speicherklasse in Ihrem Cluster vorhanden sein. Kubernetes verhindert technisch gesehen nicht, dass Sie mehr als eine Speicherklasse haben, verhält sich aber so, als gäbe es überhaupt keine Standard-Speicherklasse. |
Identifizieren Sie das Backend für eine Speicherklasse
Dies ist ein Beispiel für die Art von Fragen, die Sie mit JSON beantworten können. tridentctl Ausgaben für Trident Backend-Objekte. Dies verwendet die jq Dienstprogramm, das Sie möglicherweise zuerst installieren müssen.
tridentctl get storageclass -o json | jq '[.items[] | {storageClass: .Config.name, backends: [.storage]|unique}]'
Eine Speicherklasse löschen
Um eine Speicherklasse aus Kubernetes zu löschen, führen Sie folgenden Befehl aus:
kubectl delete storageclass <storage-class>
`<storage-class>`sollte durch Ihre Speicherklasse ersetzt werden.
Alle persistenten Volumes, die über diese Speicherklasse erstellt wurden, bleiben unberührt und werden weiterhin von Trident verwaltet.
|
|
Trident erzwingt eine leere fsType für die dadurch entstehenden Mengen. Für iSCSI-Backends wird empfohlen, Folgendes zu erzwingen parameters.fsType in der StorageClass. Sie sollten die vorhandenen StorageClasses löschen und neu erstellen mit parameters.fsType angegeben.
|