Speicherrichtlinie konfigurieren

In diesem Dokument wird beschrieben, wie Sie eine VM-Speicherrichtlinie für einen Google Distributed Cloud-Cluster konfigurieren.

Überblick

In vSphere ermöglicht die speicherrichtlinienbasierte Verwaltung (SPBM), den Speicher an die Anwendungsanforderungen virtueller Maschinen anzupassen. Es bietet ein Framework für Speicherrichtlinien, das als zentrales, einheitliches Steuerfeld für eine breite Palette von Datendiensten und Speicherlösungen dient.

In einem Anthos-Cluster on VMware können Sie alternativ zur Angabe von Datenspeichern Speicherrichtlinien angeben. Sie definieren Speicherrichtlinien basierend auf Ihren Anwendungsanforderungen. Dann wählt vSphere Datenspeicher automatisch aus und verwaltet sie. Dadurch kann der Aufwand und die Wartung für die Speicherung reduziert werden.

Übernahme

Sie können eine Speicherrichtlinie für einen Nutzercluster, einen Knotenpool in einem Nutzercluster oder eine Reihe von Knoten der Steuerungsebene in einem Nutzercluster angeben. Sie können auch eine Speicherrichtlinie für einen Administratorcluster angeben, sofern der Administratorcluster eine Steuerungsebene mit Hochverfügbarkeit und keine Windows-Knotenpools hat.

Wenn Sie eine Speicherrichtlinie für einen Nutzercluster angeben, wird die Richtlinie von den Knotenpools im Nutzercluster übernommen. Wenn Sie eine Speicherrichtlinie für einen einzelnen Knotenpool angeben, wird diese Richtlinie anstelle der Speicherrichtlinie auf Clusterebene verwendet. Wenn Sie einen Datenspeicher für einen einzelnen Knotenpool angeben, wird dieser Datenspeicher anstelle der Speicherrichtlinie auf Clusterebene verwendet.

In einem Nutzercluster, für den die Steuerungsebene V2 aktiviert ist, wird die Speicherrichtlinie auf Clusterebene von den Knoten der Steuerungsebene übernommen. Wenn Sie eine Speicherrichtlinie oder einen Datenspeicher für die Knoten der Steuerungsebene angeben, wird diese Speicherrichtlinie oder dieser Datenspeicher anstelle der Speicherrichtlinie auf Clusterebene verwendet.

Speicherrichtlinien auf Datenspeicher anwenden

Sie können eine Speicherrichtlinie auf einen einzelnen Datenspeicher oder auf mehrere Datenspeicher anwenden. Wenn Sie eine Speicherrichtlinie auf mehrere Datenspeicher anwenden, können die Speicherressourcen für einen Administratorcluster, einen Nutzercluster oder einen Knotenpool auf die Datenspeicher verteilt werden.

Beispiel: Speicherrichtlinie und Nutzercluster erstellen

Dieser Abschnitt enthält ein Beispiel zum Erstellen einer Speicherrichtlinie und eines Nutzerclusters. Dieses Beispiel veranschaulicht, dass eine Speicherrichtlinie auf zwei Datenspeicher angewendet werden kann.

Tags auf Datenspeicher anwenden

Damit Sie die Schritte in diesem Beispiel ausführen können, muss Ihre vSphere-Umgebung mindestens zwei Datenspeicher haben.

Der vSphere-Cluster, der die Knoten für Ihren Nutzercluster hostet, muss Zugriff auf die Datenspeicher haben, die Sie für diese Übung verwenden möchten. Es gibt eine Preflight-Prüfung, die dies bestätigt.

Das vCenter-Konto, mit dem Sie Tags anwenden, muss die folgenden vSphere-Tagging-Berechtigungen auf dem Root-vCenter Server haben:

  • vSphere Tagging.Create vSphere Tag
  • vSphere-Tag-Kategorie.Erstellen von vSphere-Tag
  • vSphere-Tagging.Assign oder Unassign vSphere Tag

Weisen Sie im vSphere-Client jedem Datenspeicher, den Sie für diese Übung verwendet haben, dasselbe Tag zu. Eine Anleitung dazu finden Sie unter Datenspeichern Tags zuweisen.

Weitere Informationen finden Sie unter vSphere-Tags und -Attribute.

Speicherrichtlinie erstellen

Erstellen Sie im vSphere-Client eine VM-Speicherrichtlinie für die Tag-basierte Platzierung. Geben Sie in der Speicherrichtlinie das Tag an, das Sie auf die ausgewählten Datenspeicher angewendet haben. Eine Anleitung dazu finden Sie unter VM-Speicherrichtlinie für eine Tag-basierte Platzierung erstellen.

Weitere Informationen finden Sie unter VM-Speicherrichtlinien.

Wenn Sie einen vSAN-Datenspeicher verwenden, lesen Sie die Informationen unter vSAN-Speicherrichtlinie.

Nutzercluster erstellen

In dieser Übung erstellen Sie einen Nutzercluster mit einer Steuerungsebene für Hochverfügbarkeit, sodass es drei Knoten der Steuerungsebene gibt. Zusätzlich zu den Knoten der Steuerungsebene gibt es sechs Worker-Knoten, drei in einem Knotenpool und drei in einem zweiten Knotenpool. Alle Knoten verwenden statische IP-Adressen.

Folgen Sie zuerst der Anleitung unter Nutzercluster erstellen.

Beim Ausfüllen der Konfigurationsdatei des Nutzerclusters:

  • Legen Sie den Wert von vCenter.storagePolicyName auf den Namen einer vorhandenen Speicherrichtlinie fest. Legen Sie keinen Wert für vCenter.datastore fest.

  • Geben Sie zwei Knotenpools an. Geben Sie für den ersten Knotenpool weder einen Datenspeicher noch eine Speicherrichtlinie an. Legen Sie für den zweiten Knotenpool den Wert von vsphere.datastore auf den Namen eines vorhandenen Datenspeichers fest.

Beispiel für eine Clusterkonfigurationsdatei

Hier sehen Sie ein Beispiel für eine IP-Blockdatei und einen Teil einer Nutzercluster-Konfigurationsdatei.

user-ipblock.yaml

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.21.1
    ips:
    - ip: 172.16.21.2
    - ip: 172.16.21.3
    - ip: 172.16.21.4
    - ip: 172.16.21.5
    - ip: 172.16.21.6
    - ip: 172.16.21.7
    - ip: 172.16.21.8

user-cluster-yaml

apiVersion: v1
kind: UserCluster
...
vCenter:
  storagePolicyName: "my-storage-policy"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.2"
    - "198.51.100.2"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
    ipBlockFilePath: "user-ipblock.yaml"
  controlPlaneIPBlock:
    netmask: "255.255.255.0"
    gateway: "172.16.21.1"
    ips:
    - ip: "172.16.21.9"
      hostname: "cp-vm-1"
    - ip: "172.16.21.10"
      hostname: "cp-vm-2"
    - ip: "172.16.21.11"
      hostname: "cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: MetalLB
  metalLB:
    addressPools:
    - name: "address-pool-1"
      addresses:
    - "172.16.21.30-172.16.21.39"
...
enableControlplaneV2: true
masterNode:
  cpus: 4
  memoryMB: 8192
  replicas: 3
nodePools:
- name: "worker-pool-1"
  enableLoadBalancer: true
- name: "worker-pool-2"
  vSphere:
    datastore: "my-np2-datastore"
...

Dies sind die wichtigsten Punkte, die im vorherigen Beispiel zu verstehen sind:

  • Die statischen IP-Adressen für die Worker-Knoten werden in einer IP-Blockdatei angegeben. Die IP-Blockdatei hat sieben Adressen, obwohl es nur sechs Worker-Knoten gibt. Die zusätzliche IP-Adresse wird während des Clusterupgrades, -updates und der automatischen Reparatur benötigt.

  • Die statischen IP-Adressen für die drei Knoten der Steuerungsebene werden im Abschnitt network.controlPlaneIPBlock der Konfigurationsdatei des Nutzerclusters angegeben. In diesem Block wird keine zusätzliche IP-Adresse benötigt.

  • Das Feld masterNode.replicas ist auf 3 gesetzt, sodass es drei Knoten der Steuerungsebene gibt. Unter masterNode ist für vsphere.datastore oder vsphere.storagePolicyName nichts angegeben. Daher verwenden die Knoten der Steuerungsebene die in vCenter.storagePolicyName angegebene Speicherrichtlinie.

  • Die Konfigurationsdatei des Nutzerclusters enthält einen Wert für vCenter.storagePolicy, aber keinen Wert für vCenter.datastore. Die angegebene Speicherrichtlinie wird von Knoten in jedem Pool verwendet, für den keine eigene Speicherrichtlinie oder ein eigener Datenspeicher angegeben ist.

  • Unter node-pool-1 ist für vsphere.datastore oder vsphere.storagePolicyName nichts angegeben. Daher verwenden die Knoten in node-pool-1 die in vCenter.storagePolicyName angegebene Speicherrichtlinie.

  • Unter node-pool-2 lautet der Wert von vsphere.datastore my-np2-datastore. Daher verwenden die Knoten in node-pool-2 diesen einen Datenspeicher und keine Speicherrichtlinie.

Fahren Sie mit der Erstellung des Nutzerclusters fort, wie unter Nutzercluster erstellen beschrieben.

Nutzercluster in einem von Ihrem Administratorcluster getrennten Rechenzentrum erstellen

Ein Nutzercluster kann sich in einem vom Administratorcluster getrennten Rechenzentrum befinden. Die beiden Rechenzentren können dieselbe Instanz von vCenter Server oder verschiedene Instanzen von vCenter Server verwenden.

In diesem Abschnitt wird anhand eines Beispiels erläutert, wie Sie einen Nutzercluster erstellen, der eine separate vCenter Server-Instanz des Administratorclusters verwendet. Da die Nutzer- und Administratorcluster separate Instanzen von vCenter Server verwenden, befinden sie sich ebenfalls in separaten Rechenzentren.

Folgen Sie zuerst der Anleitung unter Nutzercluster erstellen.

Beim Ausfüllen der Konfigurationsdatei des Nutzerclusters:

  • Legen Sie den Wert von vCenter.storagePolicyName auf den Namen einer vorhandenen Speicherrichtlinie fest. Legen Sie keinen Wert für vCenter.datastore fest.

  • Geben Sie unter vCenter Werte für address, datacenter, cluster und resourcePool an.

  • Geben Sie einen Wert für network.vCenter.networkName an.

  • Geben Sie zwei Knotenpools an. Geben Sie für den ersten Knotenpool weder einen Datenspeicher noch eine Speicherrichtlinie an. Legen Sie für den zweiten Knotenpool den Wert von vsphere.datastore auf den Namen eines vorhandenen Datenspeichers fest.

Beispiel für eine Clusterkonfigurationsdatei

Hier sehen Sie ein Beispiel für eine IP-Blockdatei und einen Teil einer Nutzercluster-Konfigurationsdatei.

user-ipblock.yaml

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.21.1
    ips:
    - ip: 172.16.21.2
    - ip: 172.16.21.3
    - ip: 172.16.21.4
    - ip: 172.16.21.5
    - ip: 172.16.21.6
    - ip: 172.16.21.7
    - ip: 172.16.21.8

user-cluster-yaml

apiVersion: v1
kind: UserCluster
...
vCenter:
  address: "my-vcenter-server-2.my-domain.example"
  datacenter: "my-uc-data-center"
  cluster: "my-uc-vsphere-cluster"
  resourcePool: "my-uc-resource-pool"
  storagePolicyName: "my-storage-policy"
network:
  vCenter:
    networkName: "my-uc-network"
  hostConfig:
    dnsServers:
    - "203.0.113.2"
    - "198.51.100.2"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
    ipBlockFilePath: "user-ipblock.yaml"
  controlPlaneIPBlock:
    netmask: "255.255.255.0"
    gateway: "172.16.21.1"
    ips:
    - ip: "172.16.21.9"
      hostname: "cp-vm-1"
    - ip: "172.16.21.10"
      hostname: "cp-vm-2"
    - ip: "172.16.21.11"
      hostname: "cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: MetalLB
  metalLB:
    addressPools:
    - name: "address-pool-1"
      addresses:
    - "172.16.21.30-172.16.21.39"
...
enableControlplaneV2: true
masterNode:
  cpus: 4
  memoryMB: 8192
  replicas: 3
nodePools:
- name: "worker-pool-1"
  enableLoadBalancer: true
- name: "worker-pool-2"
  vSphere:
    datastore: "my-np2-datastore"
...

Dies sind die wichtigsten Punkte, die im vorherigen Beispiel zu verstehen sind:

  • Die Konfigurationsdatei des Nutzerclusters enthält einen Wert für vCenter.storagePolicy, aber keinen Wert für vCenter.datastore. Die angegebene Speicherrichtlinie wird von Knoten in jedem Knotenpool verwendet, der keine eigene Speicherrichtlinie oder einen eigenen Datenspeicher angibt.

  • Unter vCenter sind Werte für address, datacenter, cluster und resourcePool angegeben. Daher verwendet der Nutzercluster einen anderen vCenter-Server, ein anderes Rechenzentrum, einen anderen vSphere-Cluster und einen anderen Ressourcenpool aus dem Administratorcluster.

  • Für network.vCenter.networkName wurde ein Wert angegeben.

  • Das Feld masterNode.replicas ist auf 3 gesetzt, sodass es drei Knoten der Steuerungsebene gibt. Unter masterNode ist für vsphere.datastore oder vsphere.storagePolicyName nichts angegeben. Daher verwenden die Knoten der Steuerungsebene die in vCenter.storagePolicyName angegebene Speicherrichtlinie.

  • Unter node-pool-1 ist für vsphere.datastore oder vsphere.storagePolicyName nichts angegeben. Daher verwenden die Knoten in node-pool-1 die in vCenter.storagePolicyName angegebene Speicherrichtlinie.

  • Unter node-pool-2 lautet der Wert von vsphere.datastore my-np2-datastore. Daher verwenden die Knoten in node-pool-2 diesen einen Datenspeicher und keine Speicherrichtlinie.

Fahren Sie mit der Erstellung des Nutzerclusters fort, wie unter Nutzercluster erstellen beschrieben.

vMotion-Speicher verwenden

In diesem Abschnitt wird gezeigt, wie Sie Storage-vMotion in einem Cluster verwenden, der SPBM nutzt. Informationen zur Verwendung von Storage-vMotion in einem Cluster ohne SPBM finden Sie unter Tool zur Datenspeichermigration verwenden.

Gehen Sie so vor:

  1. Migrieren Sie alle Cluster-VMs zum Zieldatenspeicher. Eine Anleitung dazu finden Sie unter Virtuelle Maschine zu einer neuen Compute-Ressource und einem neuen Compute-Speicher migrieren.

  2. Prüfen Sie, ob die VMs erfolgreich zum neuen Datenspeicher migriert wurden.

    Rufen Sie die Maschinenobjekte im Cluster ab:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get machines --output yaml
    

    In der Ausgabe sehen Sie unter status.disks die Laufwerke, die an die VMs angehängt sind. Beispiel:

    status:
    addresses:
    – address: 172.16.20.2
      type: ExternalIP
    disks:
    – bootdisk: true
      datastore: pf-ds06
      filepath: ci-bluecwang-head-xvz2ccv28bf9wdbx-2/ci-bluecwang-head-xvz2ccv28bf9wdbx-2.vmdk
      uuid: 6000C29d-8edb-e742-babc-9c124013ba54
    – datastore: pf-ds06
      filepath: anthos/gke-admin-nc4rk/ci-bluecwang-head/ci-bluecwang-head-2-data.vmdk
      uuid: 6000C29e-cb12-8ffd-1aed-27f0438bb9d9
    

    Prüfen Sie, ob alle Laufwerke aller Maschinen im Cluster in den Zieldatenspeicher migriert wurden.

  3. Führen Sie gkectl diagnose aus, um zu prüfen, ob der Cluster fehlerfrei ist.

  4. Aktualisieren Sie die Speicherrichtlinie, um die alten Datenspeicher auszuschließen. Andernfalls werden neue Volumes und neu erstellte VMs möglicherweise einem alten Datenspeicher zugewiesen.