Speicherrichtlinie konfigurieren

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

Übersicht

In vSphere hilft Storage Policy Based Management (SPBM), den Speicher an die Anwendungsanforderungen von virtuellen Maschinen anzupassen. Es bietet ein Framework für Speicherrichtlinien, das als einheitliche Steuerung über eine Vielzahl von Datendiensten und Speicherlösungen hinweg dient.

In Google Distributed Cloud können Sie Speicherrichtlinien anstelle von Datenspeichern angeben. Sie definieren Speicherrichtlinien basierend auf den Anforderungen Ihrer Anwendung. vSphere wählt dann automatisch Datenspeicher aus und verwaltet sie. Dadurch können der Aufwand und die Wartung im Zusammenhang mit dem Speicher reduziert werden.

Übernahme

Sie können eine Speicherrichtlinie für einen Nutzercluster, einen Knotenpool in einem Nutzercluster oder eine Gruppe 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 hat und keine Windows-Knotenpools enthält.

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 Controlplane 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

In diesem Abschnitt wird ein Beispiel für das Erstellen einer Speicherrichtlinie und eines Nutzerclusters beschrieben. Dieses Beispiel veranschaulicht, dass eine Speicherrichtlinie auf zwei Datenspeicher angewendet werden kann.

Tags auf Datenspeicher anwenden

Für die Schritte in diesem Beispiel muss Ihre vSphere-Umgebung mindestens zwei Datenspeicher haben.

Der vSphere-Cluster, auf dem die Knoten für Ihren Nutzercluster gehostet werden, muss Zugriff auf die Datenspeicher haben, die Sie für diese Übung verwenden möchten. Es gibt eine Preflight-Prüfung, die dies überprüft.

Das vCenter-Konto, mit dem Sie Tags anwenden, muss die folgenden vSphere-Tagging-Berechtigungen für den vCenter-Stammserver haben:

  • vSphere Tagging.Create vSphere Tag
  • vSphere Tagging.Create vSphere Tag Category
  • vSphere-Tagging.Assign oder Unassign vSphere Tag

Weisen Sie im vSphere Client jedem der Datenspeicher, die Sie für diese Übung ausgewählt haben, dasselbe Tag zu. Eine Anleitung finden Sie unter Tags Datastores zuweisen.

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

Speicherrichtlinie erstellen

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

Weitere Informationen finden Sie unter VM-Speicherrichtlinie.

Wenn Sie einen vSAN-Datenspeicher verwenden, lesen Sie den Abschnitt vSAN-Speicherrichtlinie.

Nutzercluster erstellen

In dieser Übung erstellen Sie einen Nutzercluster mit einer Steuerungsebene mit Hochverfügbarkeit. Daher gibt es drei Knoten auf Steuerungsebene. 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 für den Nutzercluster:

  • 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 keinen Datenspeicher und keine 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 Konfigurationsdatei für einen Nutzercluster.

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"
...

Im obigen Beispiel sind dies die wichtigsten Punkte:

  • 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, des 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. Für diesen Block ist keine zusätzliche IP-Adresse erforderlich.

  • Das Feld masterNode.replicas ist auf 3 gesetzt. Es gibt also drei Knoten der Steuerungsebene. Unter masterNode ist für vsphere.datastore oder vsphere.storagePolicyName nichts angegeben. Die Knoten der Steuerungsebene verwenden also 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 kein eigener Datenspeicher angegeben ist.

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

  • Unter node-pool-2 ist der Wert von vsphere.datastore my-np2-datastore. Die Knoten in node-pool-2 verwenden also diesen Datenspeicher und keine Speicherrichtlinie.

Fahren Sie mit dem Erstellen des Nutzerclusters fort, wie unter Nutzercluster erstellen beschrieben.

Nutzercluster in einem anderen Rechenzentrum als dem des Administratorclusters erstellen

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

In diesem Abschnitt wird ein Beispiel für das Erstellen eines Nutzerclusters beschrieben, der eine separate vCenter Server-Instanz vom Administratorcluster verwendet. Da die Nutzer- und Administratorcluster separate Instanzen von vCenter Server verwenden, befinden sie sich auch in separaten Rechenzentren.

Folgen Sie zuerst der Anleitung unter Nutzercluster erstellen.

Beim Ausfüllen der Konfigurationsdatei für den Nutzercluster:

  • 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 keinen Datenspeicher und keine 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 Konfigurationsdatei für einen Nutzercluster.

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"
...

Im obigen Beispiel sind dies die wichtigsten Punkte:

  • 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, für den keine eigene Speicherrichtlinie oder kein eigener Datenspeicher angegeben ist.

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

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

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

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

  • Unter node-pool-2 ist der Wert von vsphere.datastore my-np2-datastore. Die Knoten in node-pool-2 verwenden also diesen Datenspeicher und keine Speicherrichtlinie.

Fahren Sie mit dem Erstellen des Nutzerclusters fort, wie unter Nutzercluster erstellen beschrieben.

Nächste Schritte