Zuverlässigkeit in Azure Application Gateway für Container

Azure Application Gateway for Containers ist ein verwalteter Anwendungsschichtdienst (Layer 7) für Lastenausgleich und dynamische Verkehrsverwaltung für Workloads, die in Kubernetes ausgeführt werden. Es leitet eingehende Anforderungen an Back-End-Ziele in Ihrem Cluster weiter.

Wenn Sie Azure verwenden, ist Zuverlässigkeit eine gemeinsame Verantwortung. Microsoft bietet eine Reihe von Funktionen zur Unterstützung von Resilienz und Wiederherstellung. Sie sind dafür verantwortlich, zu verstehen, wie diese Funktionen in allen von Ihnen verwendeten Diensten funktionieren, und die Funktionen auswählen, die Sie benötigen, um Ihre Geschäftsziele und Uptime-Ziele zu erfüllen.

In diesem Artikel wird beschrieben, wie Azure Application Gateway for Containers vorübergehende Fehler, Verfügbarkeitszonenfehler, regionsweite Fehler und Wartung von Diensten behandelt. Darüber hinaus werden Sicherungs- und Wiederherstellungsoptionen sowie wichtige Informationen zur Vereinbarung auf Servicelevel (SERVICE Level Agreement, SLA) beschrieben.

Empfehlungen für die Produktionsimplementierung für Zuverlässigkeit

Application Gateway for Containers ist standardmäßig hoch verfügbar. Für Produktionsworkloads:

  • Stellen Sie für Zonenredundanz Application Gateway for Containers in einer Region bereit, die Verfügbarkeitszonen unterstützt. Der Dienst ist in diesen Regionen automatisch zonenredundant.

  • Konfigurieren Sie Ihren Kubernetes-Cluster, Ihre Kubernetes-Ressourcen und Ihre Back-End-Workloads für die Zonenresilienz. Anleitungen finden Sie unter Resilienz bei Ausfällen von Verfügbarkeitszonen.

  • Um Resilienz gegenüber regionsweiten Ausfällen zu erreichen, stellen Sie Application Gateway for Containers und die davon abhängigen Workloads in jeder Region bereit, und konfigurieren Sie eine regionsübergreifende Datenverkehrsverwaltung. Anleitungen finden Sie unter Benutzerdefinierte Multiregion-Lösungen zur Resilienz.

  • Wenn Sie Netzwerksicherheitsgruppen (Network Security Groups, NSGs) oder benutzerdefinierte Routen (UDRs) im Zuordnungsubnetz konfigurieren, befolgen Sie die NSG-Anleitung und den benutzerdefinierten Routenleitfaden.

Eine Beispielarchitektur und Anleitung zu Topologie, Datenverkehrsfluss, Zuverlässigkeit, Sicherheit und Vorgängen finden Sie unter Deploy Application Gateway for Containers on Azure Kubernetes Service.

Übersicht über die Zuverlässigkeitsarchitektur

In diesem Abschnitt werden einige der wichtigen Aspekte der Funktionsweise des Diensts beschrieben, die aus Zuverlässigkeitsperspektive am relevantesten sind. Im Abschnitt wird die logische Architektur vorgestellt, die einige der Ressourcen und Features enthält, die Sie bereitstellen und verwenden. Außerdem wird die physische Architektur erläutert, die Details zur Funktionsweise des Diensts unter den Deckeln bereitstellt.

Logische Architektur

Ein Application Gateway for Containers-Bereitstellung umfasst Ressourcen in Azure und in Ihrem Kubernetes-Cluster.

  • Azure-Ressourcen: Die Steuerungsebene orchestriert die Proxykonfiguration des Gateways basierend auf Ihrer Konfiguration. Die Azure verwaltete Datenebene wird außerhalb Ihres Clusters ausgeführt und verarbeitet den Anwendungsdatenverkehr.
  • Kubernetes-Ressourcen: Sie definieren Routing und andere Konfigurationen mithilfe von Kubernetes-Ressourcen. Der ALB-Controller wird in Ihrem Cluster ausgeführt, überwacht diese Ressourcen und gibt Ihre Konfiguration an Application Gateway for Containers in Azure weiter.

Sie können zwischen zwei Bereitstellungsstrategien wählen. Mit der Bring your own (BYO)-Strategie verwalten Sie den Lebenszyklus des Anwendungsgateways für Container, Zuordnungen und Frontend-Ressourcen über Azure Tools. Mit der von ALB Controller verwalteten Strategie verwaltet der ALB Controller den Lebenszyklus dieser Azure Ressourcen basierend auf den von Ihnen definierten Kubernetes-Ressourcen.

Eine vollständige Beschreibung der Komponenten finden Sie unter Application Gateway for Containers components.

Nachdem Sie Application Gateway for Containers bereitgestellt und konfiguriert haben, leitet der Dienst eingehende Anforderungen an die Back-End-Ziele weiter, die Ihre in Kubernetes ausgeführte Anwendung darstellen.

Wenn der ALB-Controller oder die Kontrollebene nicht verfügbar ist, verarbeitet die Datenebene den Datenverkehr weiterhin mithilfe der letzten erfolgreich angewendeten Konfiguration. Während des Ausfalls werden Konfigurationsupdates nicht weitergegeben, und der Dienst kann die für Scale-out-Ereignisse erforderliche Konfiguration nicht programmieren.

Physische Architektur

Azure verwaltet und skaliert die Data-Plane-Infrastruktur basierend auf dem Anwendungsdatenverkehr automatisch. Anwendungsgateway für Container wird immer in einer hoch verfügbaren Konfiguration bereitgestellt: In Regionen, die Verfügbarkeitszonen unterstützen, sind Gateways zonenredundant; in Regionen, die keine Verfügbarkeitszonen unterstützen, verwendet Azure Verfügbarkeitssätze.

Resilienz für vorübergehende Fehler

Vorübergehende Fehler sind kurze, zeitweilige Fehler in Komponenten. Sie treten häufig in einer verteilten Umgebung wie der Cloud auf und sind ein normaler Bestandteil von Vorgängen. Vorübergehende Fehler korrigieren sich nach kurzer Zeit. Es ist wichtig, dass Ihre Anwendungen vorübergehende Fehler behandeln können, in der Regel durch Wiederholen betroffener Anforderungen.

Alle in der Cloud gehosteten Anwendungen sollten die Anleitung zur vorübergehenden Fehlerbehandlung von Azure befolgen, wenn sie mit cloudgehosteten APIs, Datenbanken und anderen Komponenten kommunizieren. Weitere Informationen finden Sie unter Empfehlungen zum Umgang mit vorübergehenden Fehlern.

Berücksichtigen Sie beim Verwenden des Anwendungsgateways für Container die folgenden bewährten Methoden:

  • Implementieren Sie die Wiederholungslogik. Konfigurieren Sie Clients so, dass sie Anfragen nach vorübergehenden Verbindungsfehlern erneut senden.

  • Konfigurieren Sie Integritätstests mit Toleranz. Wenn Sie benutzerdefinierte Integritätstests konfigurieren, legen Sie den Schwellenwert für einen fehlerhaften Zustand so fest, dass vorübergehende Fehler toleriert werden. Der Schwellenwert für einen fehlerhaften Zustand gibt die Anzahl aufeinanderfolgender fehlgeschlagener Tests an, ab der das Back-End-Ziel als fehlerhaft markiert wird. Die Standardintegritätsprobe verwendet einen Schwellenwert für „ungesund“ von drei Integritätsprüfungen, wodurch verhindert wird, dass ein einzelner vorübergehender Probefehler das Back-End als ungesund kennzeichnet.

Ausfallsicherheit bei Ausfällen von Verfügbarkeitszonen

Verfügbarkeitszonen sind physisch getrennte Gruppen von Rechenzentren innerhalb einer Azure-Region. Wenn eine Zone ausfällt, erfolgt ein Failover der Dienste zu einer der verbleibenden Zonen.

Wenn Sie Application Gateway for Containers in einer Azure-Region bereitstellen, die Verfügbarkeitszonen unterstützt, konfiguriert Microsoft die Steuerebene und die Datenebene automatisch als zonenredundant über mehrere Zonen hinweg. Sie wählen nicht aus, welche Zonen der Dienst verwendet.

Von Bedeutung

Microsoft verwaltet Zonenredundanz für die Steuerebene und Datenebene von Application Gateway for Containers. Um die End-to-End-Zonenresilienz zu erreichen, konfigurieren Sie Ihren Kubernetes-Cluster, Kubernetes-Ressourcen und Back-End-Workloads, um fehlerfreie Zielendpunkte in allen Zonen bereitzustellen.

Requirements

Regionsunterstützung: Um Zonenredundanz zu verwenden, wählen Sie eine Region aus, die sowohl Application Gateway for Containers als auch Verfügbarkeitszonen unterstützt. Überprüfen Sie die regionale Verfügbarkeit von Application Gateway for Containers und vergleichen Sie sie mit der Liste der Regionen, die Verfügbarkeitszonen unterstützen.

Überlegungen

Gemeinsame Verantwortung für Ihre Kubernetes-Plattform: Microsoft verwaltet die Datenverkehrsumleitung für Application Gateway for Containers während eines Zonenfehlers. Für Azure Kubernetes Service (AKS) verwaltet Microsoft die Kubernetes-Steuerungsebene. Sie sind für die Konfiguration der Zonenresilienz für die Knotenpools Ihres Clusters sowie für andere Ressourcen verantwortlich, die Sie verwalten, und für das Verhalten Ihrer Anwendungen während eines Zonenausfalls.

  • Cluster: Konfigurieren Sie Ihre AKS-Knotenpools und andere zonengebundene Clusterressourcen, die Sie verwalten, so, dass sie über Verfügbarkeitszonen hinweg verteilt sind. AKS verwaltet die Kontrollebene; siehe Konfigurieren von Verfügbarkeitszonen für AKS-Knotenpools.

  • Ihre Workloads: Sie sind für die Bereitstellung mehrerer Podreplikate verantwortlich, verteilen sie über Zonen hinweg und stellen sicher, dass gesunde Back-End-Workloads verfügbar sind, um Datenverkehr während eines Zonenausfalls zu bedienen. Sie können Knotenpools verwenden, die sich über Verfügbarkeitszonen erstrecken, sowie Topologieverteilungsbeschränkungen und Pod-Antiaffinität.

  • Kubernetes-Konfigurationsobjekte: Das Application Gateway for Containers verwendet Kubernetes-Konfigurationsobjekte, die von der Cluster-API gespeichert werden. Ihre Verfügbarkeit hängt von der Kubernetes-Steuerungsebene und der Konfiguration ab, die Sie in Ihrem Cluster verwalten.

  • ALB Controller: Sie stellen den ALB-Controller in Ihrem Kubernetes-Cluster bereit, um die Konfiguration abzugleichen. Sie ist nicht Teil des Datenpfads von Application Gateway for Containers.

    Der ALB Controller führt zwei Replikate aus, wobei eins als Leader und das andere als sekundäre Instanz fungiert. Wenn der Leader nicht verfügbar ist, kann der Sekundärknoten zum Leader werden und die Konfiguration weiter replizieren. Beide Replikate können in derselben Verfügbarkeitszone ausgeführt werden, je nachdem, wie der Cluster sie einplant. Sie sind für die Konfiguration der Cluster- und Controller-Pods für die Zonenresilienz verantwortlich. Verwenden Sie Podtopologie-Einschränkungen oder Pod-Antiaffinität, um die Replikate über Zonen hinweg zu verteilen. Weitere Informationen finden Sie unter Konfigurieren von Verfügbarkeitszonen für AKS-Knotenpools.

Cost

Die Verfügbarkeitszonenunterstützung für Application Gateway for Containers verursacht keine zusätzlichen Gebühren, die über die Standard-Servicepreise hinausgehen. Details zu den Preisen finden Sie unter Azure Application Gateway Preise.

Konfigurieren der Unterstützung von Verfügbarkeitszonen

Wenn Sie ein neues Gateway in einer unterstützten Region bereitstellen, ist es standardmäßig zonenredundant. Sie müssen zonenredundanz für Azure Ressourcen nicht aktivieren.

Sie sind dafür verantwortlich, Ihre Kubernetes-Cluster-, ALB-Controller- und Back-End-Workloads für die Zonenresilienz zu konfigurieren.

Verhalten, wenn alle Zonen fehlerfrei sind

In diesem Abschnitt wird beschrieben, was Sie erwarten können, wenn Sie Application Gateway for Containers in einer Region bereitstellen, die Verfügbarkeitszonen unterstützt und in der alle vom Dienst verwendeten Zonen betriebsbereit sind.

  • Zonenübergreifender Betrieb: Die von Azure verwaltete Datenebene von Application Gateway for Containers verteilt eingehende Anfragen über die Infrastruktur in mehreren Zonen.

    Sie sind dafür verantwortlich, Ihre Back-End-Workloads für die zonenübergreifende Ausführung zu konfigurieren und fehlerfreie Ziele für den Empfang dieses Datenverkehrs bereitzustellen.

  • Zonenübergreifende Datenreplikation: Application Gateway for Containers speichert keine Anwendungsdaten. Die Plattform verwaltet den Konfigurationszustand über die zonenredundante Steuerungsebene, um Dauerhaftigkeit und Resilienz zu gewährleisten.

Verhalten bei einem Zoneausfall

In diesem Abschnitt wird beschrieben, was Sie erwarten müssen, wenn Sie Application Gateway for Containers in einer Region bereitstellen, die Verfügbarkeitszonen unterstützt, und bei einer der vom Dienst verwendeten Zonen ein Ausfall auftritt.

  • Erkennung und Reaktion: Das Application Gateway for Containers leitet den Datenverkehr während eines Zonenausfalls an die Infrastruktur in den verbleibenden fehlerfreien Zonen um. Sie müssen keine Maßnahmen für die Umverteilung des Gateway-Datenverkehrs ergreifen.

    Sie sind jedoch für die Auswirkungen des Ausfalls auf Ihre Kubernetes-Cluster- und Back-End-Anwendungen verantwortlich.

  • Notification: Microsoft benachrichtigt Sie nicht automatisch, wenn eine Zone abfällt. Sie können jedoch Azure Service Health verwenden, um den Gesamtstatus des Diensts zu verstehen, einschließlich aller Zonenfehler, und Sie können Service Health Alerts einrichten, um Sie über Probleme zu informieren.
  • Aktive Anfragen: Vorhandene Verbindungen zur ausgefallenen Zone werden verworfen. Clients sollten die Anforderungen entsprechend dem Leitfaden unter Resilienz gegenüber vorübergehenden Fehlern wiederholen. Neue Verbindungen werden zur Infrastruktur in den verbleibenden fehlerfreien Zonen eingerichtet.

  • Erwarteter Datenverlust: Application Gateway for Containers speichert keine Anwendungsdaten. Die Plattform verwaltet den Konfigurationszustand über die zonenredundante Steuerungsebene, um Dauerhaftigkeit und Resilienz zu gewährleisten.

  • Erwartete Ausfallzeiten: Clients können eine kurze Unterbrechung erleben, wenn Verbindungen zur ausgefallenen Zone verworfen werden. Clients sollten Anfragen wiederholen, um neue Verbindungen mit der Infrastruktur in den verbleibenden fehlerfreien Zonen herzustellen.

    Die Azure verwaltete Steuerebene bleibt während eines Ausfalls in einer Zone verfügbar. Ihre Fähigkeit zum Anwenden von Konfigurationsupdates hängt jedoch auch von der Verfügbarkeit Ihrer Kubernetes-Steuerebene und des ALB-Controllers ab.

  • Umverteilung: Das Application Gateway for Containers leitet Datenverkehr an die Infrastruktur in den verbleibenden fehlerfreien Zonen um.

Zonenwiederherstellung

Application Gateway for Containers stellt sich nach zugrunde liegenden Problemen selbst wieder her. Azure verwaltet die Wiederherstellung der Gatewayinfrastruktur.

Test auf Zonenfehler

Die Plattform Application Gateway for Containers verwaltet das Datenverkehrsrouting und die Reaktion auf Zonenausfälle für das Gateway selbst. Sie müssen die Antwort des Gateways nicht initiieren oder verwalten. Wenn Sie über einen Kubernetes-Cluster verfügen, den Sie verwalten, können Sie Azure Chaos Studio verwenden, um die Reaktion des Clusters auf Zonenfehler zu testen. Weitere Informationen finden Sie unter Testen auf Resilienz von Verfügbarkeitszonen.

Widerstandsfähigkeit bei regionalen Ausfällen

Application Gateway for Containers ist ein Einzelregionendienst. Wenn die Region Azure, in der Sie ein Gateway bereitgestellt haben, nicht verfügbar ist, ist dieses Gateway nicht verfügbar.

Benutzerdefinierte Multiregion-Lösungen für Resilienz

Das Anwendungsgateway für Container bietet keine integrierte Multiregion-Bereitstellung oder Failoverlösung. Um Ihre Architektur auf einen Regionsausfall auszulegen, stellen Sie in jeder Region ein separates Gateway und einen separaten Kubernetes-Cluster bereit, und konfigurieren Sie diese. Sie sind dafür verantwortlich, den Datenverkehr zwischen den regionalen Gateways zu leiten und Failover zu konfigurieren.

  • Konfigurieren Sie Application Gateway for Containers regionsübergreifend konsistent. Um Bereitstellungen zu vereinfachen und Konfigurationen auszurichten, definieren Sie Ihre Infrastruktur als Code (IaC), indem Sie Tools wie Bicep oder Terraform verwenden.

  • Wählen Und konfigurieren Sie einen globalen Datenverkehrsverwaltungsdienst, z. B. Azure Front Door oder Azure Traffic Manager, um Clients an Ihre regionalen Gateways zu leiten. Diese Dienste verwenden unterschiedliche Routingmodelle und Konfigurationen für Integritätstests. Konfigurieren Sie den ausgewählten Dienst so, dass der Datenverkehr von einem nicht verfügbaren Gateway weggeleitet wird, und lesen Sie dessen Dokumentation, um Routingverhalten und Failoverüberlegungen zu verstehen. Azure Front Door bietet auch Funktionen wie Schutz vor Distributed-Denial-of-Service-Angriffen (DDoS), WAF-Funktionen (Web Application Firewall) und regelbasiertes Routing.

  • Stellen Sie Ihre Back-End-Anwendungen in jeder Region bereit, und konfigurieren Sie sie so, dass während eines Ausfalls gesunde Workloads bereitgestellt werden. Wenn Ihre Anwendungen von Daten oder anderen Azure Diensten abhängen, entwerfen und konfigurieren Sie diese Dienste auch für die Verfügbarkeit in mehreren Regionen. Prüfen Sie den Zuverlässigkeitsleitfaden für jeden Dienst, um dessen Optionen und Einschränkungen für mehrere Regionen zu verstehen.

Sichern und Wiederherstellen

Das Application Gateway for Containers speichert keine Anwendungsdaten. Azure Resource Manager speichert die Azure Ressourcenkonfiguration des Gateways. Sie können diese Ressourcen neu erstellen, indem Sie ihre Konfiguration neu deployen.

Sie sind dafür verantwortlich, die Konfiguration und die Kubernetes-Ressourcen aufzubewahren, die definieren, wie das Gateway bereitgestellt wird und Datenverkehr weiterleitet:

  • Definieren Sie die Azure Ressourcen und ihre Einstellungen in der Infrastruktur als Code (IaC), z. B. Bicep oder Terraform, und behalten Sie die Definitionen in der Versionssteuerung bei. Sie können sie verwenden, um die Gatewayressourcen erneut bereitzustellen.

  • Sichern Sie die Kubernetes-Ressourcen, die das Gateway konfigurieren, wie z. B. ApplicationLoadBalancer-, Gateway- und HTTPRoute-Ressourcen. Stellen Sie sie in Ihrem Cluster wieder her, wenn Sie die Routingkonfiguration neu erstellen müssen.

  • Bewahren Sie verwandte Konfigurationen, einschließlich benutzerdefinierter Regeln und Firewallrichtlinien für Webanwendungen, in der Versionssteuerung oder über Den standardmäßigen Konfigurationssicherungsprozess auf. Sie können Bereitstellungspipelines verwenden, um die ressourcen Azure und Kubernetes konsistent neu zu erstellen.

Resilienz gegenüber Wartungsarbeiten an Diensten

Microsoft verwaltet die Wartung für Application Gateway for Containers und erhält dabei die Hochverfügbarkeit des Diensts aufrecht.

Die erforderliche Mindestsubnetzgröße /24 für jede Zuordnung berücksichtigt Wartungsfenster, sodass Sie keinen zusätzlichen Subnetz-IP-Adressraum für die Wartung zuweisen müssen.

Weitere Informationen finden Sie unter Skalierung und Verfügbarkeit für Application Gateway for Containers.

Service-Level-Vereinbarung

Der Service level agreement (SLA) für Azure-Dienste beschreibt die erwartete Verfügbarkeit jedes Diensts und die Bedingungen, die Ihre Lösung erfüllen muss, um diese Verfügbarkeitserwartungen zu erreichen. Weitere Informationen finden Sie unter Dienstleistungsvereinbarungen für Onlinedienste.

Die SLA für Application Gateway for Containers misst die Steuerebene und die Datenebene separat. Beide Ebenen werden in die Berechnung der Gesamt-SLA einbezogen.