Standard-Speicherklasse festlegen

Auf dieser Seite wird gezeigt, wie Sie die Standard-StorageClass für einen Anthos GKE On-Prem-Cluster festlegen. Siehe auch Speicher.

Überblick

GKE On-Prem kann mithilfe eines der folgenden Mechanismen in Block- oder Dateispeicher integriert werden:

Wenn Sie einen Cluster erstellen, erstellt GKE On-Prem eine StorageClass von Kubernetes mit dem Namen standard. Dies ist die standardmäßige StorageClass für den Cluster.

Geben Sie den folgenden Befehl ein, um detaillierte Informationen zur StorageClass standard anzuzeigen:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml

Dabei ist [CLUSTER_KUBECONFIG] der Pfad der kubeconfig-Datei für Ihren Cluster.

In der Ausgabe sehen Sie, dass der Name der StorageClass standard lautet. Sie können auch die Annotation storageclass.kubernetes.io/is-default-class: "true" sehen. Diese Annotation identifiziert die StorageClass mit dem Namen standard als Standard-StorageClass.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: standard
  ...
parameters:
  datastore: HOST2-DATASTORE2
  diskformat: thin
  fstype: ext4
provisioner: kubernetes.io/vsphere-volume
reclaimPolicy: Delete
volumeBindingMode: Immediate

Ihr Cluster kann mehrere StorageClass-Objekte haben, aber nur eines davon kann die Anmerkung storageclass.kubernetes.io/is-default-class: "true" und somit die Standard-StorageClass haben.

In der vorherigen Ausgabe sehen Sie auch, dass der Bereitsteller kubernetes.io/vsphere-volume ist. Dies ist der Bereitsteller, der Maßnahmen ergreift, wenn ein Client ein Speicherelement der Klasse standard anfordert.

Standard-Speicherklasse:

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 StorageClass angibt. Der Lautstärkeregler erfüllt den Anspruch gemäß der Standard-StorageClass.

Standard-StorageClass ändern

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

Stellen Sie ein neues Speichersystem bereit

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 Anweisungen zur Bereitstellung ihres CSI-Treibers in einem Kubernetes-Cluster bereitstellen. Die Dokumentation eines CSI-Treibers sollte auch die treiberspezifischen Parameter enthalten, die Sie in Ihrer StorageClass 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. "schnell" oder "stark repliziert") und nicht hinter dem Namen des entsprechenden Treibers oder Geräts. Dies erleichtert die Bereitstellung konsistenter Speicherrichtlinien für Cluster und Umgebungen.

Entfernen Sie die Standardanmerkung aus der standard StorageClass

Geben Sie den folgenden Befehl ein, um das standard StorageClass-Manifest in einem Texteditor zu öffnen:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] edit storageclass standard

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

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

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml

Neue Speicherklasse erstellen

Erstellen Sie ein Manifest für eine neue StorageClass. Fügen Sie die Anmerkung 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 Ihr Manifest als YAML-Datei und erstellen Sie die neue StorageClass:

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

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

Nächste Schritte