Standard-StorageClass festlegen

Ein Nutzercluster hat ein oder mehrere StorageClass-Objekte. Eines davon wird als Standard-Speicherklasse festgelegt. Auf dieser Seite wird gezeigt, wie Sie die Standard-Speicherklasse für einen Nutzercluster festlegen.

Weitere Informationen finden Sie unter Speicher.

Standard-Speicherklasse suchen

Listen Sie alle Speicherklassen auf:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get storageclasses

In der Ausgabe sehen Sie, welche Speicherklasse die Standardeinstellung ist. In der folgenden Ausgabe sehen Sie beispielsweise, dass die Speicherklasse standard-rwo die Standard-Speicherklasse ist:

standard                      kubernetes.io/vsphere-volume
standard-rwo (default)        csi.vsphere.vmware.com

Wenn Sie Speicher anfordern, können Sie eine StorageClass angeben. Wenn Sie keine StorageClass angeben, wird die Standard-StorageClass verwendet. Angenommen, Sie erstellen einen PersistentVolumeClaim, der keine Speicherklasse angibt. Der Volume-Controller erfüllt die Anforderung gemäß der Standard-StorageClass.

Standard-StorageClass ändern

Als Clusteradministrator können Sie die Standardspeicherklasse ändern. Dann werden alle Speicheranfragen, die keine StorageClass angeben, entsprechend der StorageClass Ihrer Wahl erfüllt. In diesem Abschnitt wird beschrieben, wie Sie die Standardeinstellung ändern.

Ein neues Speichersystem bereitstellen

Stellen Sie ein neues Speichersystem und alle Softwarekomponenten bereit, um den neuen Speichermechanismus in einen Kubernetes-Cluster zu integrieren. Möglicherweise müssen Sie einen CSI-Treiber im Cluster installieren.

Dieser Schritt hängt vom Speicheranbieter ab, den Sie verwenden. Für CSI-Treiber sollten Anbieter eine Anleitung zur Bereitstellung ihres CSI-Treibers in einem Kubernetes-Cluster zur Verfügung stellen. Die Dokumentation eines CSI-Treibers sollte auch die treiberspezifischen Parameter enthalten, die Sie in Ihrer Speicherklasse angeben, einschließlich des Bereitstellernamens.

Wenn Sie eine StorageClass für Ihre neue Appliance erstellen, sollten Sie die StorageClass nach ihren Eigenschaften benennen (z. B. "fast" oder "highly-replicated") und nicht nach dem Namen des entsprechenden Treibers oder Geräts. Dies erleichtert die Bereitstellung konsistenter Speicherrichtlinien für Cluster und Umgebungen.

Standardannotation aus der Standard-Speicherklasse entfernen

Öffnen Sie die Standard-Speicherklasse in einem Texteditor:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] edit storageclass \
    DEFAULT_STORAGE_CLASS

Entfernen Sie im Texteditor die Annotation storageclass.kubernetes.io/is-default-class: "true". Schließen Sie den Texteditor.

Um zu bestätigen, dass die Annotation entfernt wurde, geben Sie folgenden Befehl ein:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get storageclass \
    DEFAULT_STORAGE_CLASS --output yaml

Neue StorageClass erstellen

Erstellen Sie ein Manifest für eine neue StorageClass. Fügen Sie die Annotation storageclass.kubernetes.io/is-default-class: "true" hinzu. Beispiel:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: my-storage-class
  ...
parameters:
  ...
provisioner: [MY_PROVISIONER]
...

Speichern Sie das Manifest als YAML-Datei und erstellen Sie die neue StorageClass:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] apply -f [MANIFEST_FILE]

Dabei ist [MANIFEST_FILE] der Pfad zur neuen StorageClass-Manifestdatei.

Nächste Schritte