Auf dieser Seite finden Sie eine Übersicht über Topologiedomains und Richtlinien für ihre Einrichtung.
Für die Einrichtung einer Topologiedomain müssen Sie den erweiterten Cluster aktivieren. Beachten Sie die folgenden Einschränkungen für die Vorschau des erweiterten Clusters:
- Sie können den erweiterten Cluster nur beim Erstellen von neuen Clustern der Version 1.31 aktivieren.
- Nachdem der erweiterte Cluster aktiviert wurde, können Sie den Cluster nicht auf Version 1.32 aktualisieren. Aktivieren Sie den erweiterten Cluster nur in einer Testumgebung.
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 betrachtet werden, z. B. ein Campus oder ein Rechenzentrum. Eine Topologiedomain sollte einer zugrunde liegenden Hardware oder Software entsprechen, bei der die Möglichkeit eines korrelierten Fehlers besteht. Beispiel:
- Softwarefehler, z. B. verschiedene vCenter Server
- Hardwarefehler, z. B. verschiedene Racks, verschiedene Stromquellen und verschiedene Gebäude
In Google Distributed Cloud (nur Software) für VMware definieren Sie beim Erstellen eines Clusters im Rahmen der Einrichtung einer Topologie domain ein Topologie label. Nach der Clustererstellung wird das Topologielabel in die Labels der Knoten in der Topologiedomain eingefügt.
Sie haben folgende Möglichkeiten, eine Topologiedomain zu verwenden:
Version 1.32 und höher: Konfigurieren Sie Standardeinschränkungen für die Topologieverteilung auf Clusterebene. 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
PodTemplatein Ihrer Bereitstellung, Ihrem StatefulSet oder ReplicaSet mit dem Labelschlüssel der Topologie. In der Pod-Spezifikation verwenden Sie den Schlüssel im Topologielabel als Wert für das FeldtopologySpreadConstraints.topologyKey. Mit diesem Schlüssel kann der Kubernetes-Scheduler Pods in der Topologiedomain verteilen, um eine hohe Verfügbarkeit zu gewährleisten und eine Überkonzentration in einem einzelnen Bereich im Falle eines Fehlers zu verhindern. Weitere Informationen zum Konfigurieren vontopologySpreadConstraintsin der Pod-Spezifikation finden Sie unter Pod Topology Spread Constraints in der Kubernetes-Dokumentation.
Beispiele für Topologiedomain-Labels
Angenommen, Sie erstellen beim Erstellen eines Nutzerclustersdie folgenden drei Topologiedomains:
...
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"
...
Auf hoher Ebene verwendet der Kubernetes-Scheduler topology.examplepetstore.com/zone, um die Clusterknoten in verschiedene Gruppen zu unterteilen: zone-1, zone-2 und zone-3. Anschließend verteilt der Scheduler die Pods auf diese drei Knotengruppen.
Richtlinien für die Einrichtung von Topologiedomains
Damit der Kubernetes-Scheduler alle Clusterressourcen effektiv nutzen kann, empfehlen wir die folgenden Richtlinien:
- Die Topologiedomains müssen ausgeglichen sein. Sie sollten in jeder Topologiedomain nahezu die gleiche Menge an CPU- und RAM-Kapazität bereitstellen.
- Stellen Sie mindestens zwei und vorzugsweise drei Topologiedomains bereit.
- Verteilen Sie nicht nach mehr als einem Topologieschlüssel.
- Die Knoten sollten in jeder Topologiedomain eine ähnliche Größe haben.
- Wenn Sie Taints und Toleranzen zur Trennung von Arbeitslasten in einem Cluster verwenden, muss jede Knotengruppe die vorherigen Anforderungen erfüllen.
Wenn diese Richtlinien nicht eingehalten werden, versucht der Scheduler weiterhin, die volle Kapazität des Clusters zu nutzen. Es kann jedoch länger dauern, bis Pods geplant werden, und nicht alle Pods erhalten das erwartete Verteilungsverhalten.
Nächste Schritte
- Admincluster für die Verwendung in Topologiedomains erstellen
- Nutzercluster für die Verwendung in Topologiedomains erstellen
- Konfigurationsdatei für die vSphere-Infrastruktur