Topologiedomains einrichten

Auf dieser Seite finden Sie eine Übersicht über Topologiedomänen und Richtlinien für deren Einrichtung.

Zum Einrichten einer Topologiedomain müssen Sie Erweiterter Cluster aktivieren.

Diese Seite richtet sich an Administratoren und Architekten, die IT-Lösungen und Systemarchitekturen gemäß der Unternehmensstrategie definieren und Richtlinien zu Nutzerberechtigungen erstellen und verwalten. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud -Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.

Übersicht

Eine Topologiedomain ist eine Gruppe von Clusterknoten, die als Teil derselben logischen oder physischen Gruppierung wie ein Campus oder ein Rechenzentrum betrachtet werden. Eine Topologiedomain sollte einer zugrunde liegenden Hardware oder Software entsprechen, bei der die Möglichkeit eines korrelierten Fehlers besteht. Beispiel:

  • Softwarefehler, z. B. unterschiedliche vCenter-Server
  • Hardwarefehler wie unterschiedliche Racks, unterschiedliche Stromquellen und unterschiedliche Gebäude

In Google Distributed Cloud (nur Software) für VMware definieren Sie beim Erstellen eines Clusters im Rahmen der Einrichtung einer Topologiedomain ein Topologielabel. Nach der Clustererstellung wird das Topologielabel in die Labels von Knoten in der Topologiedomain eingefügt.

Sie haben folgende Möglichkeiten, eine Topologiedomain zu verwenden:

  • Version 1.32 und höher: Standardmäßige Einschränkungen für die Topologieverteilung auf Clusterebene konfigurieren. Weitere Informationen finden Sie unter schedulerConfiguration.

  • Verwenden Sie die Standardeinschränkung auf Kubernetes-Clusterebene, "topology.kubernetes.io/zone", als Schlüssel im Topologielabel. Weitere Informationen finden Sie unter Integrierte Standardeinschränkungen.

  • Konfigurieren Sie die PodTemplate in Ihrem Deployment, StatefulSet oder ReplicaSet, je nachdem, was für den Topologie-Labelschlüssel gilt. In der Pod-Spezifikation verwenden Sie den Schlüssel im Topologielabel als Wert für das Feld topologySpreadConstraints.topologyKey. Mit diesem Schlüssel kann der Kubernetes-Planer Pods über die Topologiedomain verteilen, um Hochverfügbarkeit zu gewährleisten und im Falle eines Ausfalls eine zu starke Konzentration in einem einzelnen Bereich zu verhindern. Weitere Informationen zum Konfigurieren von topologySpreadConstraints in Ihrer Pod-Spezifikation finden Sie in der Kubernetes-Dokumentation unter Pod-Topologie-Streuungseinschränkungen.

Beispiel für Topologie-Domainlabels

Angenommen, Sie erstellen die folgenden drei Topologiedomänen, wenn Sie einen Nutzercluster erstellen:

...
topologyDomains:
- name: "topology-domain-1"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-1"
...
...
topologyDomains:
- name: "topology-domain-2"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-2"
...
...
topologyDomains:
- name: "topology-domain-3"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-3"
...

Nachdem der Cluster erstellt wurde, aktualisieren Sie die Pod-Spezifikation, z. B.:

...
topologySpreadConstraints:
  topologyKey: "topology.examplepetstore.com/zone"
...

Grob gesagt verwendet der Kubernetes-Planer topology.examplepetstore.com/zone, um die Clusterknoten in verschiedene Gruppen zu unterteilen: zone-1, zone-2 und zone-3. Anschließend verteilt der Planer die Pods auf diese drei Knotengruppen.

Richtlinien zum Einrichten von Topologiedomains

Damit alle Clusterressourcen vom Kubernetes-Planer effektiv genutzt werden, empfehlen wir die folgenden Richtlinien:

  • Die Topologiedomains müssen ausgeglichen sein. Sie sollten in jeder Topologiedomain ungefähr die gleiche Menge an CPU- und RAM-Kapazität bereitstellen.
  • Geben Sie mindestens zwei und vorzugsweise drei Topologiedomains an.
  • Verteilen Sie nicht auf mehr als einen Topologieschlüssel.
  • Die Knoten sollten in jeder Topologiedomain eine ähnliche Größe haben.
  • Wenn Sie Markierungen und Toleranzen für die Trennung von Arbeitslasten innerhalb eines Clusters verwenden, sollte jede Knotengruppe die vorherigen Anforderungen erfüllen.

Wenn diese Richtlinien nicht eingehalten werden, versucht der Planer weiterhin, die volle Kapazität des Clusters zu nutzen. Es kann jedoch länger dauern, Pods zu planen, und nicht alle Pods weisen das erwartete Verteilungsverhalten auf.

Beschränkungen

Sie können gkectl get-config nicht verwenden, um Konfigurationsdateien aus Clustern zu generieren, die Topologiedomains verwenden. Diese Einschränkung gilt für den Administratorcluster und für alle Nutzercluster, die vom Administratorcluster verwaltet werden. Bewahren Sie die Konfigurationsdateien auf, die Sie zum Erstellen und Aktualisieren dieser Cluster verwenden, einschließlich der vSphere-Infrastrukturkonfigurationsdatei und der IP-Blockdateien. Verwenden Sie diese Dateien als „Source of Truth“ für Ihre Clusterkonfiguration.

Nächste Schritte