Multi-Cluster-Anwendungsfälle

Obwohl es sich im Allgemeinen empfiehlt, möglichst wenige Cluster zu verwenden, wählen Organisationen aber aus verschiedenen Gründen die Bereitstellung mehrerer Cluster, um ihre technischen und geschäftlichen Ziele zu erreichen. Die meisten Organisationen trennen Produktions- und Nicht-Produktionsdienste voneinander, indem sie sie in verschiedenen Clustern bereitstellen. In komplexeren Szenarien können Organisationen mehrere Cluster auswählen, um Dienste auf verschiedene Ebenen, Sprachen, Teams oder Infrastrukturanbieter aufzuteilen.

Die häufigsten Gründe für die Einführung mehrerer Cluster lassen sich in drei Kategorien von Anforderungen unterteilen:

  • Isolation: Trennen der Steuerungsebene und der Datenebene von Diensten, hauptsächlich zur Verbesserung der Zuverlässigkeit oder Adressierung von Sicherheitsanforderungen
  • Standort: Platzieren von Diensten an bestimmten Standorten, um Verfügbarkeit-, Latenz- und Standortanforderungen zu erfüllen
  • Skalierung: Insbesondere im Zusammenhang mit Kubernetes-Clustern die Skalierung von Diensten über die praktischen Grenzen eines einzelnen Clusters hinaus

Die Kategorien werden in den folgenden Abschnitten ausführlicher behandelt.

In vielen Fällen müssen Organisationen mehrere dieser Anforderungen gleichzeitig erfüllen. Achten Sie in Ihrer Organisation darauf, dass Sie generell möglichst wenige Cluster verwenden sollten. Ermitteln Sie, welche der Multi-Cluster-Anforderungen die höchste Priorität für Ihre Organisation haben und nicht kompromittiert werden können, und gehen Sie dann entsprechende Kompromisse ein, um eine Multi-Cluster-Architektur zu erstellen.

Wenn Ihre Organisation ein Cluster pro Dienst-Modell oder einen Cluster pro Team-Modus in Betracht zieht, sollten Sie überlegen, wie viel Verwaltungsaufwand für die Operatoren eines solchen Systems entsteht. Flotten und die Google Cloud-Komponenten und Funktionen unterstützen die Verwaltung mehrerer Cluster, um sie so einfach wie möglich zu gestalten. Es gibt jedoch immer zusätzliche Verwaltungskomplexität bei mehr Clustern.

Isolation

In diesem Kontext bezieht sich Isolation auf die Trennung der Steuerungsebene und/oder Datenebene. Beide können durch Ausführen mehrerer Cluster erreicht werden. Abhängig von der Implementierung erstreckt sich diese Trennung wahrscheinlich aber auch auf die Datenisolation. Isolation tritt in der Regel in folgenden Fällen auf:

  • Umgebung
    Sehr oft führen Organisationen ihre Entwicklungs-, Staging-/Test- und Produktionsdienste in separaten Clustern aus, die häufig in verschiedenen Netzwerken und Cloudprojekten ausgeführt werden. Diese Trennung soll dazu führen, dass die Produktionsdienste nicht versehentlich unterbrochen werden und der Zugriff auf sensible Daten während der Entwicklung oder Tests verhindert wird.

  • Arbeitslast-Tiering
    Oft wenden Unternehmen, die viele komplexe Anwendungen haben, ein Dienst-Tierung an, um kritische und weniger kritische Dienste auf verschiedenen Clustern auszuführen. In einer solchen Umgebung werden diese kritischen Dienste und ihre Cluster im Hinblick auf Zugriff, Sicherheit, Upgrades, Richtlinien usw. mit besonderer Aufmerksamkeit behandelt. Ein Beispiel für dieses Tiering ist die Bereitstellung von zustandslosen und zustandsorientierten Diensten in separaten Clustern.

  • Reduzierte Auswirkungen von Fehlern
    Wenn Unternehmen die Auswirkungen eines Bedienerfehlers, eines Clusterfehlers oder eines damit verbundenen Infrastrukturfehlers begrenzen möchten, können sie ihre Dienste auf mehrere Cluster aufteilen.

  • Upgrades
    Wenn Organisationen sich Gedanken über mögliche Probleme beim Upgrade machen, z. B. Fehler bei automatischen Upgrades, instabile Anwendungen oder Rollback-Möglichkeit, können sie eine Kopie ihrer Dienste in einem neuen Cluster bereitstellen. Ein Upgrade auf diese Weise erfordert Planung oder Automatisierung. Trafficverwaltung und Zustandsreplikation müssen während des Upgrades berücksichtigt werden.

  • Trennung von Sicherheit und Regulierung
    Organisationen können Dienste aus verschiedenen Gründen isolieren, um beispielsweise Arbeitslasten, die rechtlichen Anforderungen unterliegen, von weniger vertraulichen Diensten abzugrenzen. Auch können Drittanbieterdienste (weniger vertrauenswürdig) auf separaten Infrastrukturen als eigene (vertrauenswürdige) Dienste (Cluster) ausgeführt werden.

  • Mandantentrennung
    Die Trennung von Mandanten in mehrere Cluster wird aus verschiedenen Gründen häufig durchgeführt, darunter Sicherheitsisolation, Leistungsisolation, Kostenrechnung und sogar Eigentümerschaft.

Standort

  • Latenz
    Einige Dienste haben Latenzanforderungen, die erfüllt werden müssen. Dafür wird eine Arbeitslast an einem bestimmten Standort (oder in einer geografischen Region) gesucht. Dies kann passieren, wenn vorgelagerte Dienste oder Endnutzer empfindlich auf Latenz reagieren, aber auch wenn die Arbeitslast selbst empfindlich auf nachgelagerte Dienstlatenz reagiert.

  • Verfügbarkeit
    Wenn Sie denselben Dienst in mehreren Verfügbarkeitszonen von einem einzelnen Cloud-Anbieter (oder über mehrere Anbieter) ausführen, können Sie eine höhere Verfügbarkeit erzielen.

  • Rechtsprechung
    Datenstandort und andere rechtliche Bestimmungen in Bezug auf die Datenverarbeitung können dazu führen, dass Computing und Speicher in einer bestimmten Region leben müssen, sodass die Infrastruktur in mehreren Rechenzentren oder Cloud-Anbietern bereitgestellt werden muss.

  • Datengravitation
    Es kann schwierig, unrealistisch oder gar nicht empfehlenswert sein, einen großen Korpus von Daten oder sogar Datenbankinstanzen über einen einzelnen Cloud-Anbieter oder eine einzelne Cloud-Region zusammenzuführen. Abhängig von den Verarbeitungs- und Bereitstellungsanforderungen muss eine Anwendung möglicherweise in der Nähe ihrer Daten bereitgestellt werden.

  • Legacy-Infrastruktur/Dienste
    So wie das Verschieben von Daten in die Cloud schwierig sein kann, ist auch das Verschieben einiger Legacy-Infrastrukturen schwierig. Obwohl diese Legacy-Dienste unflexibel sind, können Unternehmen über die Bereitstellung zusätzlicher Cluster für die Entwicklung neuer Dienste die Entwicklungsgeschwindigkeit erhöhen.

  • Entwicklerauswahl
    Organisationen profitieren häufig, wenn sie Entwicklerauswahl bei von ihnen verwalteten Cloud-Diensten bieten. Im Allgemeinen können Teams bei einer Auswahl schneller mit Tools arbeiten, die sich am besten für ihre Bedürfnisse eignen. Allerdings müssen dann zusätzliche Ressourcen für jeden Anbieter verwaltet werden.

  • Lokale/Edge-Computing-Anforderungen
    Schließlich möchten Unternehmen die Modernisierung von Anwendungen in herkömmlichen Arbeitsumgebungen wie Lagerhallen, Fabrikgebäuden, Einzelhandelsgeschäften usw. anpassen. Dazu müssen Sie viel mehr Arbeitslasten auf viel mehr Infrastrukturkomponenten verwalten.

Skalieren

Da GKE Cluster auf mehr als 5.000 Knoten skalieren kann, sind diese Grenzen selten ein Grund, mehrere Cluster zu betreiben. Bevor ein Cluster an die Grenzen der Skalierbarkeit stößt, entscheiden sich Unternehmen häufig für eine Verteilung der Dienste auf mehrere Cluster. Bei Clustern, die an die Grenzen der Skalierbarkeit stoßen, kann die Ausführung einer Anwendung über mehrere Cluster einige Herausforderungen erleichtern, allerdings mit der zusätzlichen Komplexität der Verwaltung mehrerer Cluster.