Speicherrichtlinie konfigurieren

In diesem Dokument wird gezeigt, wie Sie eine VM-Speicherrichtlinie für einen GKE on VMware-Cluster konfigurieren.

Überblick

In vSphere lässt sich der Speicher mithilfe der speicherrichtlinienbasierten Verwaltung (SPBM) an die Anwendungsanforderungen virtueller Maschinen anpassen. Es bietet ein Speicherrichtlinien-Framework, das als zentrales, einheitliches Steuerfeld für eine breite Palette von Datendiensten und Speicherlösungen dient.

In einem Anthos-Cluster auf VMware können Sie Speicherrichtlinien als Alternative zu Datenspeichern angeben. Sie definieren Speicherrichtlinien basierend auf Ihren Anwendungsanforderungen. Anschließend werden Datenspeicher automatisch von vSphere ausgewählt und verwaltet. Dies kann den Aufwand und Wartungsaufwand reduzieren, der mit dem Speicher verbunden ist.

Übernahme

Sie können eine Speicherrichtlinie für einen Administratorcluster, einen Nutzercluster, einen Knotenpool in einem Nutzercluster oder eine Reihe von Knoten der Steuerungsebene in einem Nutzercluster angeben.

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 ebenfalls dieser Datenspeicher anstelle der Speicherrichtlinie auf Clusterebene verwendet.

In einem Nutzercluster mit aktivierter Controlplane V2 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 finden Sie ein Beispiel für das Erstellen einer Speicherrichtlinie und eines Nutzerclusters. Dieses Beispiel veranschaulicht die Idee, dass eine Speicherrichtlinie auf zwei Datenspeicher angewendet werden kann.

Tags auf Datenspeicher anwenden

Zum Ausführen der Schritte in diesem Beispiel 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 prüft.

Das vCenter-Konto, das Sie zum Anwenden von Tags verwenden, muss die folgenden vSphere-Tagging-Berechtigungen auf dem vCenter-Server-Root-Konto haben:

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

Weisen Sie im vSphere-Client jedem Datenspeicher, den Sie für diese Übung verwenden möchten, das gleiche 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 Tag-basierte Platzierung erstellen.

Weitere Informationen finden Sie unter VM-Speicherrichtlinie.

Wenn Sie einen vSAN-Datenspeicher verwenden, finden Sie weitere Informationen unter vSAN-Speicherrichtlinie.

Nutzercluster erstellen

In dieser Übung erstellen Sie einen Nutzercluster mit einer Steuerungsebene mit Hochverfügbarkeit, sodass drei Knoten der Steuerungsebene vorhanden sind. 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 (ControlPlane V2).

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 ist 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 wichtigen Punkte aus dem vorherigen Beispiel:

  • Die statischen IP-Adressen für die Worker-Knoten werden in einer IP-Blockdatei angegeben. Die IP-Blockdatei hat sieben Adressen, obwohl nur sechs Worker-Knoten vorhanden sind. Die zusätzliche IP-Adresse wird während des Clusterupgrades, der Aktualisierung 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. Es ist keine zusätzliche IP-Adresse in diesem Block erforderlich.

  • Das Feld masterNode.replicas ist auf 3 gesetzt, sodass drei Knoten der Steuerungsebene vorhanden sind. 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, der keine eigene Speicherrichtlinie oder keinen eigenen Datenspeicher angibt.

  • 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 ist vsphere.datastore der Wert my-np2-datastore. Daher nutzen die Knoten in node-pool-2 diesen einen Datenspeicher und keine Speicherrichtlinie.

Fahren Sie mit der Erstellung des Nutzerclusters fort, wie unter Nutzercluster erstellen (Controlplane V2) beschrieben.

Nutzercluster in einem vom 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 unterschiedliche Instanzen von vCenter Server verwenden.

In diesem Abschnitt wird anhand eines Beispiels beschrieben, wie Sie einen Nutzercluster erstellen, der eine separate Instanz von vCenter Server aus dem Administratorcluster 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 (ControlPlane V2).

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 ist 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 wichtigen Punkte aus dem vorherigen Beispiel:

  • 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 keinen 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 ist ein Wert angegeben.

  • Das Feld masterNode.replicas ist auf 3 gesetzt, sodass drei Knoten der Steuerungsebene vorhanden sind. 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 ist vsphere.datastore der Wert my-np2-datastore. Daher nutzen die Knoten in node-pool-2 diesen einen Datenspeicher und keine Speicherrichtlinie.

Fahren Sie mit der Erstellung des Nutzerclusters fort, wie unter Nutzercluster erstellen (Controlplane V2) beschrieben.