Speicherklassen in Anthos-VM-Laufzeit erstellen und verwenden

Dieses Dokument richtet sich an Anwendungsinhaber und Plattformadministratoren, die Anthos-Cluster auf Bare-Metal ausführen. In diesem Dokument erfahren Sie, wie Sie Speicherklassen für VMs erstellen und verwenden, die Anthos-VM-Laufzeit verwenden. Mit einer StorageClass können Sie verschiedene Speicherkonfigurationen definieren, um die verschiedenen Anforderungen Ihrer VMs zu erfüllen.

Hinweis

Wenn Sie dieses Dokument durcharbeiten möchten, benötigen Sie Zugriff auf Anthos-Cluster auf Bare Metal-Version 1.12.0 (anthosBareMetalVersion: 1.12.0) oder höher. Sie können einen beliebigen Clustertyp verwenden, der Arbeitslasten ausführen kann. Bei Bedarf können Sie Anthos-Cluster auf Bare Metal in Compute Engine ausprobieren oder die Übersicht über die Clustererstellung aufrufen.

Speicherklassen – Übersicht

Mit einer StorageClass definieren Sie den Speichertyp, den Sie für VMs bereitstellen. Unterschiedliche Speicherklassen können einer unterschiedlichen Arten von Speicherhardware, Dateisystem oder Leistung zugeordnet werden. Sie können Speicherklassen erstellen und verwenden, um Ihre Computing-Arbeitslasten in Anthos-VM-Laufzeit zu unterstützen. Weitere Informationen finden Sie unter Speicherklassen.

In der benutzerdefinierten Ressource für die Anthos-VM-Laufzeit kann eine Standard-StorageClass definiert werden. Wenn Sie beim Erstellen einer VirtualMachineDisks, keine bestimmte Klasse definieren, wird die standardmäßige StorageClass verwendet. Anfänglich ist keine StorageClass konfiguriert und als Standard festgelegt. Im folgenden Abschnitt erfahren Sie, wie Sie diese Standard-StorageClass festlegen oder aktualisieren.

Standard-StorageClass festlegen oder aktualisieren

Anfänglich ist für Anthos-Cluster auf Bare-Metal mit der Anthos-VM-Laufzeit keine Standard-StorageClass konfiguriert. Wenn Sie ein VirtualMachineDisk erstellen möchten, ohne eine StorageClass anzugeben, müssen Sie zuerst eine StorageClass erstellen und diese dann als Standard festlegen.

Wenn Sie anfänglich die Standard-StorageClass festlegen und aktualisieren möchten, die Anthos-VM-Laufzeit beim Erstellen einer VirtualMachineDisk verwendet, aktualisieren Sie die benutzerdefinierte VMRuntime-Ressource.

  1. Bearbeiten Sie die benutzerdefinierte VMRuntime-Ressource:

    kubectl edit vmruntime
    
  2. Fügen Sie den Abschnitt spec.storage hinzu, der die zu verwendende Standard-StorageClass angibt, oder aktualisieren Sie ihn:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: true
      storage:
        defaultStorageClass: STORAGE_CLASS_NAME
    ...
    

    Bearbeiten Sie STORAGE_CLASS_NAME mit dem Namen der Standard-StorageClass, die Sie verwenden möchten. Wenn Sie zuerst eine StorageClass erstellen müssen, finden Sie entsprechende Informationen unter StorageClass erstellen.

  3. Speichern und schließen Sie die benutzerdefinierte VMRuntime-Ressource in Ihrem Editor.

    Die von Ihnen angegebene StorageClass wird jetzt verwendet, wenn Sie ein VM-Laufwerk erstellen und keine StorageClass angeben. Im folgenden Abschnitt erfahren Sie, wie Sie ein Laufwerk erstellen und eine bestimmte StorageClass verwenden.

    Vorhandene VirtualMachineDisk-Ressourcen werden nicht auf die Verwendung der neu angegebenen StorageClass aktualisiert.

Bestimmte StorageClass verwenden

Wenn Sie beim Erstellen einer VirtualMachineDisk nicht die Standard-StorageClass verwenden möchten, geben Sie im Feld storageClassName eine andere StorageClass an.

Führen Sie die folgenden Schritte aus, um beim Erstellen einer VirtualMachineDisk eine bestimmte, bereits definierte StorageClass zu verwenden:

  1. Erstellen Sie in einem Editor Ihrer Wahl ein VirtualMachineDisk-Manifest wie my-disk.yaml.

    nano my-disk.yaml
    
  2. Kopieren Sie das folgende YAML-Manifest und fügen Sie es ein:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
      storageClassName: STORAGE_CLASS_NAME
    

    Ersetzen Sie die folgenden Werte:

    • DISK_NAME: der Name des Laufwerks.
    • STORAGE_CLASS_NAME: StorageClass, die für das Laufwerk verwendet werden soll. Diese StorageClass muss bereits vorhanden sein. Wenn Sie zuerst eine StorageClass erstellen müssen, lesen Sie die Informationen unter StorageClass erstellen.
  3. Speichern und schließen Sie das Laufwerkmanifest in Ihrem Editor.

  4. Erstellen Sie das Laufwerk mit kubectl:

    kubectl apply -f my-disk.yaml
    

Speicherprofile konfigurieren

Speicherprofile bieten zusätzliche Konfigurationsoptionen, die mit jeder StorageClass verknüpft sind. Diese Konfigurationsoptionen umfassen den Zugriffsmodus und den Volume-Modus, die für VirtualMachineDisks verwendet werden sollen, die die StorageClass verwenden.

Ohne konfiguriertes Speicherprofil ist die Standardeinstellung für Laufwerke der Zugriffsmodus ReadWriteOnce. Dieser Zugriffsmodus ist für Produktionsarbeitslasten nicht ausreichend, da Features wie die Live-Migration nicht funktionieren. Der Standard-Volume-Modus ohne konfiguriertes Speicherprofil ist Filesystem.

Die Anthos VM-Laufzeit generiert automatisch ein Speicherprofil für jede StorageClass in einem Cluster. Das Speicherprofil hat den gleichen Namen wie die zugehörige StorageClass. Die folgende Beispielausgabe zeigt, dass der Cluster vier Speicherklassen und zugehörige Profile hat:

  $ kubectl get storageprofiles

  NAME            AGE
  anthos-system   11d
  node-disk       11d
  standard        11d
  nfs             11d

Führen Sie folgende Schritte aus, um ein Speicherprofil zu bearbeiten und Zugriffsmodus oder Volume-Modus zu ändern:

  1. Bereiten Sie die benutzerdefinierte StorageProfile-Ressource für die Bearbeitung vor:

    kubectl edit storageprofile STORAGE_PROFILE_NAME
    

    Ersetzen Sie STORAGE_PROFILE_NAME durch das StorageProfile, das Sie bearbeiten möchten.

  2. Fügen Sie der Liste spec.claimPropertySets des StorageProfile einen einzelnen Eintrag hinzu:

    apiVersion: cdi.kubevirt.io/v1beta1
    kind: StorageProfile
    metadata:
      name: nfs
    spec:
      claimPropertySets:
      - accessModes:
        - ACCESS_MODE
        volumeMode: VOLUME_MODE
    

    accessMode und volumeMode verwenden die zugrunde liegenden Kubernetes-Komponenten. Die festgelegten Werte hängen vom verwendeten Speichertreiber ab. Ersetzen Sie die folgenden Werte für den verwendeten Speicher:

    • ACCESS_MODE: der Zugriffsmodus, den Sie verwenden möchten. Wenn dies von der verbundenen StorageClass unterstützt wird, ist der bevorzugte Zugriffsmodus ReadWriteMany.
      • Folgende Werte sind zulässig: ReadWriteOnce, ReadOnlyMany, ReadWriteMany und ReadWriteOncePod. Wenn nicht angegeben, wird ReadWriteOnce basierend auf den Standardeinstellungen der Anthos-VM-Laufzeit verwendet. Weitere Informationen finden Sie unter Zugriffsmodi.
    • VOLUME_MODE: der zu verwendende Volume-Modus.
      • Folgende Werte sind zulässig: Filesystem und Block. Wenn nicht angegeben, wird Filesystem basierend auf den Kubernetes-Standardeinstellungen verwendet. Weitere Informationen finden Sie unter Volume-Modi.
  3. Speichern und schließen Sie die benutzerdefinierte StorageProfile-Ressource in Ihrem Editor.

    Die von Ihnen definierten Speicherprofileinstellungen werden nun verwendet, wenn Sie virtuelle Laufwerke erstellen. Vorhandene VirtualMachineDisk-Ressourcen werden nicht auf die definierten Speicherprofileinstellungen aktualisiert.

Nächste Schritte