Multi-Cluster-Dienste


Auf dieser Seite erhalten Sie eine Übersicht über die Funktionsweise von GKE-Multi-Cluster-Diensten (MCS). Informationen zur Verwendung von MCS finden Sie unter Multi-Cluster-Dienste konfigurieren.

MCS – Übersicht

Mit dem vertrauten Service-Objekt von Kubernetes können Sie einen Service innerhalb der Grenzen eines einzelnen Kubernetes-Clusters entdecken und aufrufen. Manchmal möchten Sie Anwendungen jedoch in mehrere Cluster aufteilen, um Anforderungen an die Statusverwaltung, Datenschutz, Skalierbarkeit, Verfügbarkeit und Datenhoheit zu erfüllen. Mit MCS können Sie Kubernetes-Anwendungen erstellen, die sich über mehrere Cluster erstrecken.

MCS ist ein clusterübergreifender Service- und Aufrufmechanismus für Google Kubernetes Engine (GKE), der das vorhandene Serviceobjekt nutzt. Mit diesem Feature aktivierte Dienste können clusterübergreifend mit einer virtuellen IP-Adresse gefunden und aufgerufen werden. Sie entsprechen dem Verhalten eines ClusterIP-Dienstes, auf den in einem Cluster zugegriffen werden kann. Wie Ihre vorhandenen Dienste ist MCS auch mit von der Community bestimmten und offenen APIs kompatibel, sodass Ihre Arbeitslasten portierbar bleiben.

MCS ist ein Feature von GKE. MCS konfiguriert Cloud DNS-Zonen und -Einträge für jeden exportierten Dienst in Ihren Flottenclustern. Mit einer Flotte können Sie GKE-Cluster logisch gruppieren und normalisieren, um die Verwaltung der Infrastruktur zu vereinfachen und die Verwendung von Multi-Cluster-Features wie MCS zu ermöglichen. Weitere Informationen zu den Vorteilen von Flotten und deren Erstellung finden Sie in der Dokumentation zur Flottenverwaltung.

Exportierte Dienste haben unabhängig vom Typ immer einen Cloud DNS-Eintrag und exportierte monitorlose Dienste haben Einträge für jeden Backend-Pod mit einem Hostnamen, einschließlich Pods in StatefulSets. Die Verwendung von Cloud DNS verursacht zusätzliche Kosten. Die Abrechnung erfolgt gemäß den Cloud DNS-Preisen.

Erstellen Sie zum Exportieren eines Service mit MCS eine benutzerdefinierte ServiceExport-Ressource mit demselben Namespace und Namen wie der Service. MCS importiert den Service automatisch in jeden Cluster in der Flotte. Wenn MCS einen Service importiert, wird Folgendes erstellt:

  • Eine benutzerdefinierte ServiceImport-Ressource, die denselben Namespace und denselben Namen wie der Service verwendet.
  • Ein Endpoints-Objekt, das denselben Namespace wie der Service und einen zufälligen Namen verwendet.

Vorteile von MCS

Die Verwendung von MCS bietet folgende Vorteile:

  • Hochverfügbarkeit: Wenn Sie denselben Service in Clustern in mehreren Regionen ausführen, erhalten Sie eine verbesserte Fehlertoleranz. Wenn ein Dienst in einem Cluster nicht verfügbar ist, kann für die Anfrage ein Failover durchgeführt und von anderen Clustern bereitgestellt werden. Mit MCS kann die Kommunikation zwischen Diensten clusterübergreifend verwaltet werden, um die Verfügbarkeit Ihrer containerisierten Anwendungen zu verbessern.
  • Zustandsorientierte und zustandslose Dienste: Zustandsorientierte und zustandslose Dienste haben unterschiedliche Betriebsabhängigkeiten und -komplexitäten und bieten unterschiedliche betriebliche Kompromisse. Ohne Zustandsverwaltung ist es in der Regel einfacher, eine Arbeitslast mit hoher Verfügbarkeit zu skalieren, zu aktualisieren und zu migrieren. Mit MCS können Sie Cluster für zustandsorientierte und zustandslose Arbeitslasten trennen, damit sie voneinander unabhängig, isoliert und einfacher zu verwalten sind.
  • Gemeinsam genutzte Dienste: Es ist üblich, separate Kubernetes-Cluster zu erstellen, um eine höhere Verfügbarkeit, eine bessere Verwaltung zustandsorientierter und zustandsloser Dienste und eine einfachere Einhaltung von Anforderungen zur Datenhoheit zu ermöglichen. Viele Dienste wie das Monitoring mit Prometheus oder die Verwaltung von Secrets mit Vault werden jedoch häufig von allen Clustern gemeinsam genutzt. Anstatt dass jeder Cluster ein eigenes lokales Service-Replikat benötigt, erleichtert MCS das Einrichten gängiger gemeinsamer Services in einem separaten Cluster, den alle Funktionscluster verwenden.
  • Migration: Wenn Sie eine vorhandene Anwendung in eine containerisierte, auf Mikrodiensten basierende Architektur modernisieren möchten, müssen Sie häufig Dienste in mehreren Kubernetes-Clustern bereitstellen. MCS bietet einen Mechanismus, um die Kommunikation zwischen diesen Diensten zu ermöglichen und die Migration Ihrer Anwendungen zu vereinfachen. Dies ist besonders hilfreich, da Sie denselben Dienst für zwei verschiedene Cluster bereitstellen können und der Traffic zwischen zwei Clustern oder Anwendungen übertragen werden kann.

Nächste Schritte

  • Hier finden Sie weitere Informationen zu Multi-Cluster-Ingress, das Dienste für Nord-Süd- und Ost-West-Traffic bereitstellt.
  • Hier finden Sie weitere Informationen zu Cloud Service Mesh, das Ihnen eine genauere Kontrolle über Routing und Trafficmuster bietet.