In diesem Dokument finden Sie technische Anleitungen und Best Practices zum Entwerfen und Bereitstellen von hochverfügbaren (HA) Arbeitslasten in mehreren Zonen in einem Google Distributed Cloud-Universum (GDC) mit Air Gap. Der Leitfaden enthält wichtige Architekturmuster, Dienstkonfigurationen und betriebliche Überlegungen, um Ausfallzeiten zu minimieren und die Geschäftskontinuität sicherzustellen.
Die Strategien in diesem Dokument sind für die folgenden technischen Fachleute gedacht:
Cloud-Architekten, die ausfallsichere Infrastruktur- und Anwendungsarchitekturen entwerfen.
DevOps- und Site Reliability Engineers, die Bereitstellungsstrategien, Automatisierung, Monitoring und Incident Response für HA-Arbeitslasten implementieren.
Anwendungsentwickler, die fehlertolerante Anwendungen erstellen, die in HA-Muster integriert werden.
Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.
Bedeutung von Hochverfügbarkeit
In modernen verteilten Systemen ist die Planung für Hochverfügbarkeit entscheidend. Ausfallzeiten können zu erheblichen Geschäftsunterbrechungen, Umsatzverlusten und einer schlechten Nutzererfahrung führen.
Bei Arbeitslasten, die in privaten Rechenzentren mit GDC ausgeführt werden, korreliert die Verfügbarkeit oft direkt mit dem betrieblichen Erfolg, insbesondere bei latenzempfindlichen oder geschäftskritischen Anwendungen. Es ist wichtig, von Anfang an auf Hochverfügbarkeit zu setzen, um stabile und zuverlässige Dienste zu entwickeln.
GDC bietet Hyperscale-Funktionen in Ihrer Umgebung mit Air Gap mit mehreren nicht verbundenen Rechenzentren oder Zonen. Die Hochverfügbarkeit für Ihre Multi-Zonen-Anwendungen hängt von Multi-Zonen-Diensten wie Load-Balancing und asynchronem Speicher ab. Weitere Informationen zu wichtigen Diensten für die Hochverfügbarkeit finden Sie in den Abschnitten Skalierbarkeit und Load-Balancing und HA-Anwendungsbereitstellung in mehreren Zonen mit asynchronem Speicher in diesem Dokument.
Hyperscale-Funktionen, lokal bereitgestellt
GDC erweitert die Google Cloud Infrastruktur und Dienste auf das Edge-Netzwerk und auf Ihre Rechenzentren. GDC bietet eine vollständig verwaltete Hardware- und Softwarelösung, mit der Sie Google Kubernetes Engine (GKE) auf GDC-Clustern und andere Google Cloud Dienste näher an dem Ort ausführen können, an dem Ihre Daten generiert und verwendet werden.
In diesem Dokument geht es um GDC-Universen, die in einer Multi-Zonen-Topologie konfiguriert sind. In dieser Konfiguration umfasst ein einzelnes Universum mehrere physisch isolierte Zonen am selben Standort.
Diese Zonen haben eine unabhängige Stromversorgung, Kühlung und ein unabhängiges Netzwerk und bieten Schutz vor lokalen Ausfällen der physischen Infrastruktur. Die Netzwerkverbindung mit niedriger Latenz und hoher Bandbreite zwischen den Zonen ermöglicht die Datenreplikation und ein schnelles Failover und bildet die Grundlage für die Entwicklung hochverfügbarer Anwendungen.
Skalierbarkeit und Load-Balancing
Neben der grundlegenden Komponentenredundanz sind die effektive Verwaltung des Traffics und die nahtlose Skalierung entscheidend für die Aufrechterhaltung der Hochverfügbarkeit, insbesondere bei unterschiedlichen Lastbedingungen. GDC bietet mehrere Mechanismen für das Load-Balancing und ein ausgefeiltes Traffic-Management.
Externer Load-Balancer für Nord-Süd-Traffic
Wenn Sie Ihre Anwendungen für Nutzer oder Systeme außerhalb eines GKE-Clusters in GDC (Nord-Süd-Traffic) verfügbar machen möchten, verwenden Sie die verwalteten externen Load-Balancing-Funktionen von GDC. Der Dienst für externe Load-Balancer (External Load Balancer, ELB) bietet diese Funktionen und lässt sich nahtlos in Kubernetes einbinden.
Die wichtigsten Merkmale des ELB-Dienstes, der Hochverfügbarkeit und Skalierbarkeit bietet, sind:
Verwalteter Dienst: Wird als GDC-spezifischer Dienst ausgeführt, und ist für Hochverfügbarkeit und Ausfallsicherheit in einer Umgebung mit Air Gap konzipiert.
Externer Zugriff: Stellt stabile externe IP-Adressen aus von GDC verwalteten Pools bereit und bietet einen konsistenten Einstiegspunkt für externe Clients.
Load-Balancer-Integration in Kubernetes: Stellt den Load-Balancer automatisch bereit und konfiguriert ihn, wenn Sie einen Kubernetes-
Servicevom Typtype: LoadBalancerohne spezifische interne Anmerkungen erstellen.Zonenbewusstsein: Verteilt eingehenden Traffic auf fehlerfreie Anwendungspods, die in allen verfügbaren Zonen innerhalb des GDC-Universums ausgeführt werden. Der ELB verwendet Bereitschaftsprüfungen für Pods, um den Back-End-Zustand zu ermitteln.
Skalierbarkeit: Verarbeitet die Verteilung des externen Traffics, wenn Ihre Anwendung horizontal über Knoten und Zonen hinweg skaliert wird.
Um Hochverfügbarkeit für eingehenden externen Traffic zu erreichen, sodass Clientanfragen automatisch von fehlerhaften Zonen oder Instanzen weggeleitet werden, empfehlen wir die Verwendung eines externen Load-Balancers.
Weitere Informationen finden Sie unter Externe Load-Balancer konfigurieren.
Interner Load-Balancer für Ost-West-Traffic
Für die Kommunikation zwischen Diensten, die im selben GKE-Cluster in GDC ausgeführt werden (Ost-West-Traffic), bietet GDC einen internen Load-Balancer (Internal Load Balancer, ILB). Ein ILB ist entscheidend, um interne Dienste zu entkoppeln und interne Kommunikationspfade bereitzustellen, die ebenfalls hochverfügbar und skalierbar sind.
Die wichtigsten Merkmale des ILB-Dienstes, der Hochverfügbarkeit und Skalierbarkeit bietet, sind:
Interner Zugriff: Stellt eine stabile interne IP-Adresse bereit, auf die nur innerhalb des GDC-Netzwerks zugegriffen werden kann, z. B. von Clusterknoten oder anderen internen Diensten.
Load-Balancer-Integration in Kubernetes: Stellt das Load-Balancing bereit, indem ein Kubernetes
Servicevom Typtype: LoadBalancermit einer bestimmten Anmerkung erstellt wird, um anzugeben, dass er intern sein muss. Beispiel:networking.gke.io/load-balancer-type: "Internal".Zonenbewusstsein: Verteilt den Traffic auf fehlerfreie Back-End-Pods, die mit Bereitschaftsprüfungen identifiziert werden und sich in allen verfügbaren Zonen befinden. Diese Verteilung verhindert Fehler bei der internen Kommunikation, wenn in einer Zone Probleme auftreten.
Service Discovery und Entkopplung: Bietet eine stabile interne IP-Adresse und einen DNS-Namen mit kube-dns- und CoreDNS-Integration. Dienste können sich gegenseitig erkennen und miteinander kommunizieren, sodass Clients keine einzelnen Pod-IP-Adressen kennen müssen.
Skalierbarkeit: Ermöglicht die Skalierung interner Back-End-Dienste, indem der Traffic auf alle verfügbaren fehlerfreien Replikate verteilt wird.
Durch die Verwendung eines ILB für die interne Kommunikation zwischen Diensten ist der interne Traffic ausfallsicher gegenüber Zonenausfällen und bietet eine effektive Skalierung. So wird die Hochverfügbarkeit ergänzt, die durch den externen ELB und die zugrunde liegende Compute-Verteilung bereitgestellt wird. Diese Strategie wird häufig für mehrstufige Anwendungen verwendet, bei denen Frontend-APIs mit Backend-APIs oder -Datenbanken innerhalb des Kubernetes-Clusters kommunizieren müssen.
Weitere Informationen finden Sie unter Interne Load-Balancer konfigurieren.
HA-Anwendungsbereitstellung in mehreren Zonen mit asynchronem Speicher
Mit GDC können Sie Infrastruktur und Anwendungen näher an Ihren Datenquellen ausführen. Wenn Sie HA-Anwendungen mit einer ausfallsicheren Datenquelle bereitstellen möchten, implementieren Sie die asynchrone Speicherreplikation für die Datenpersistenz und die Notfallwiederherstellung.
Zonen stellen unterschiedliche Fehlerdomains innerhalb eines einzelnen Universums dar. Durch die Verteilung von Anwendungskomponenten und die Replikation von Daten über Zonen hinweg verbessern Sie die Ausfallsicherheit erheblich gegenüber lokalen Hardwarefehlern oder Wartungsereignissen.
Weitere Informationen finden Sie unter Datenschutz mit Multi-Zonen-Speicher.
Nächste Schritte
Informationen zum Bereitstellen eines Dienstes als Sammlung von virtuellen Maschinen (VMs), die über Zonen hinweg verteilt sind und asynchron replizierten Blockspeicher verwenden, finden Sie unter HA-VM-Anwendung bereitstellen.
Informationen zum Bereitstellen eines Dienstes als containerisierte Anwendung in Kubernetes über Zonen hinweg mit asynchron replizierten nichtflüchtigen Speichern finden Sie unter HA-Containeranwendung bereitstellen.
Weitere Informationen zu Zonen und Universen finden Sie unter Zonen in GDC mit Air Gap.