Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure Container-Apps werden im Kontext einer Umgebung mit einem eigenen virtuellen Netzwerk (VNet) ausgeführt. Dieses VNet erstellt eine sichere Grenze um Ihre Azure-Container-Apps-Umgebung.
Die Ingress-Konfiguration in Azure Container Apps bestimmt, wie der externe Netzwerkverkehr zu Ihren Anwendungen gelangt. Durch das Konfigurieren des Ingress können Sie die Datenverkehrssteuerung steuern, die Anwendungsleistung verbessern und erweiterte Bereitstellungsstrategien implementieren. Dieser Artikel führt Sie durch die Ingresskonfigurationsoptionen, die in Azure-Container-Apps verfügbar sind, und hilft Ihnen bei der Auswahl der richtigen Einstellungen für Ihre Workloads.
Eine Azure Container Apps-Umgebung enthält einen skalierbaren Edge-Eingangsproxy, der für die folgenden Funktionen verantwortlich ist:
Transport Layer Security (TLS) wird beendet, wodurch TLS-Datenverkehr entschlüsselt wird, während er in die Umgebung gelangt. Dieser Vorgang verschiebt die Arbeit der Entschlüsselung von Ihren Container-Apps weg, verringert den Ressourcenverbrauch und verbessert die Leistung.
Lastenausgleich und Datenverkehrsaufteilung zwischen aktiven Container-App-Revisionen. Wenn Sie steuern, wo Sie eingehenden Datenverkehr leiten, können Sie Muster wie die blaugrüne Bereitstellung implementieren und A/B-Tests durchführen.
Sitzungsaffinität, die das Erstellen zustandsbehafteter Anwendungen ermöglicht, die eine konsistente Verbindung mit demselben Container-App-Replikat erfordern.
Das folgende Diagramm zeigt eine Beispielumgebung mit einem Ingress-Proxy, der den Datenverkehr zu zwei Container-Anwendungen routet.
Standardmäßig erstellt Azure Container-Apps Ihre Container-App-Umgebung mit dem Standardmäßigen Eingangsmodus. Wenn Ihre Anwendung auf hohem Niveau arbeiten muss, können Sie den Eingangsmodus auf Premium festlegen.
Standardeinstiegsmodus
Im Standardeingangsmodus verfügt Ihre Container-Apps-Umgebung über zwei Eingangsproxyinstanzen. Container-Apps erstellen bei Bedarf weitere Instanzen bis zu maximal 10. Jede Instanz wird bis zu 1 vCPU-Kern und 2 GB Arbeitsspeicher zugewiesen.
Im Standardeingangsmodus wird keine Abrechnung für die Skalierung des Eingangsproxys oder für die vCPU-Kerne und den zugewiesenen Arbeitsspeicher angewendet.
Premium-Eingangsmodus
Der Standardeinstiegsmodus könnte zu einem Engpass in Umgebungen mit hoher Skalierung werden. Alternativ bietet der Premiumeingangsmodus erweiterte Funktionen, um sicherzustellen, dass der Eingangsproxy mit den Anforderungen des Datenverkehrs Schritt hält.
Zu diesen Funktionen gehören:
Workload-Profil-Unterstützung: Eingangsproxy-Instanzen werden in einem Workloadprofil Ihrer Wahl ausgeführt. Sie haben die Kontrolle über die Anzahl der vCPU-Kerne und Speicherressourcen, die für den Proxy verfügbar sind.
Konfigurierbare Skalierungsbereichsregeln: Regeln für Proxyskalenbereich sind konfigurierbar, sodass Sie sicherstellen können, dass Sie so viele Instanzen haben, wie Ihre Anwendung erfordert.
Erweiterte Einstellungen: Sie können erweiterte Einstellungen konfigurieren, wie z. B. Leerlaufzeitüberschreitungen für eingehende Proxyinstanzen.
Um zwischen Standard- und Premium-Eingangsmodus zu entscheiden, bewerten Sie die von der Proxyinstanz verbrauchten Ressourcen unter Berücksichtigung der bereitgestellten Anforderungen. Sehen Sie sich zunächst vCPU-Kerne und Speicherressourcen an, die von der Proxyinstanz verbraucht werden. Wenn Ihre Umgebung die maximale Eingangsproxyanzahl (Standard 10) für einen längeren Zeitraum aufrecht erhält, sollten Sie in Betracht ziehen, zum Premium-Eingangsmodus zu wechseln. Weitere Informationen finden Sie unter Metriken. Informationen zum Konfigurieren des Premium-Eingangsmodus finden Sie unter "Premium-Eingangsmodus verwenden" in Azure-Container-Apps.
Workloadprofil
Sie können ein Workloadprofil auswählen, um dedizierte Knoten für Ihre Eingangs-Proxyinstanzen bereitzustellen, die entsprechend Ihren Anforderungen skaliert werden. Die D4-D32 Workload-Profiltypen werden empfohlen. Jede Eingangsproxyinstanz wird 1 vCPU-Kern zugewiesen. Weitere Informationen finden Sie unter Workloadprofile in Azure Container Apps.
Das Workloadprofil:
- Darf nicht dem Workloadprofil „Verbrauch“ entsprechen.
- Darf nicht für Container-Apps oder Aufträge freigegeben werden.
- Darf nicht gelöscht werden, während Sie ihn für Ihren Eingangsproxy verwenden.
Das Ausführen Ihres Eingangsproxys in einem Workloadprofil wird nach dem Tarif für dieses Workloadprofil abgerechnet. Weitere Informationen finden Sie unter Abrechnung.
Sie können auch die Anzahl der Workloadprofilknoten konfigurieren. Ein Workloadprofil ist ein skalierbarer Pool von Knoten. Jeder Knoten enthält mehrere Eingangsproxyinstanzen. Die Anzahl der Knoten wird basierend auf vCPU und Speicherauslastung skaliert. Die Mindestanzahl von Knoteninstanzen ist zwei.
Skalierung
Der Eingangsproxy wird unabhängig von der Container-App-Skalierung skaliert.
Wenn Ihr Eingangsproxy eine hohe vCPU- oder Speicherauslastung erreicht, erstellt Container Apps mehr Eingangsproxyinstanzen. Wenn die Auslastung verringert wird, werden die zusätzlichen Eingangsproxyinstanzen entfernt.
Ihre minimalen und maximalen Eingangsproxyinstanzen werden wie folgt bestimmt:
Minimum: Es gibt mindestens zwei Knoteninstanzen.
Maximum: Ihre maximalen Knoteninstanzen multipliziert mit Ihren vCPU-Kernen. Wenn Sie beispielsweise über 50 maximale Knoteninstanzen und 4 vCPU-Kerne verfügen, habem Sie maximal 200 Eingangsproxyinstanzen.
Die Eingangsproxyinstanzen sind auf die verfügbaren Workloadprofilknoten verteilt.
Erweiterte Eingangseinstellungen
Wenn der Premium-Eingangsmodus aktiviert ist, können Sie auch die folgenden Einstellungen konfigurieren:
| Konfiguration | BESCHREIBUNG | Mindestwert | Höchstwert | Standard |
|---|---|---|---|---|
| Kündigungsfrist | Die Zeitspanne (in Sekunden), die die Container-Anwendung benötigt, um die Bearbeitung von Anfragen abzuschließen, bevor sie beim Herunterfahren abgebrochen werden. | 0 | 3,600 | 500 |
| Leerlaufanforderungstimeout | Timeouts für Leerlaufanforderungen in Minuten. | 4 | 30 | 4 |
| Anzahl der Anforderungsheader | Erhöhen Sie diese Einstellung, wenn Sie Über Clients verfügen, die eine große Anzahl von Anforderungsheadern senden. | 1 | Nicht verfügbar | 100 |
Sie sollten diese Einstellungen nur bei Bedarf erhöhen, weil das Erhöhen dieser dazu führen könnte, dass Ihre eingehenden Proxyinstanzen über längere Zeiträume mehr Ressourcen verbrauchen und anfälliger für Ressourcenausschöpfung und Denial-of-Service-Angriffe werden.
Konfigurieren von Ingress
Sie können den Eingangseingang für Ihre Umgebung konfigurieren, nachdem Sie sie erstellt haben.
Navigieren Sie im Azure-Portal zu Ihrer Umgebung.
Wählen Sie Netzwerk aus.
Wählen Sie " Eingangseinstellungen" aus.
Konfigurieren Sie die Ingress-Einstellungen wie folgt.
Konfiguration Wert Eingangsmodus Wählen Sie "Standard" oder "Premium" aus. Workloadprofilgröße Wählen Sie eine Größe von D4 bis D32 aus. Minimale Anzahl von Knoteninstanzen Geben Sie die Knoteninstanzen des Mindestarbeitsauslastungsprofils ein. Maximale Knoteninstanzen Geben Sie die maximalen Instanzen von Workloadprofilknoten ein. Kündigungsfrist Geben Sie die Kündigungsfrist in Minuten ein. Leerlaufanforderungstimeout Geben Sie das Leerlaufanforderungstimeout in Minuten ein. Anzahl der Anforderungsheader Geben Sie die Anzahl der Anforderungsheader ein. Wählen Sie Anwenden.
Regelbasiertes Routing
Mit regelbasiertem Routing erstellen Sie einen vollqualifizierten Domänennamen (FQDN) in Ihrer Container-Apps-Umgebung. Anschließend verwenden Sie Regeln, um Anforderungen an diesen FQDN abhängig vom Pfad jeder Anforderung an verschiedene Container-Apps weiterzuleiten. Dies bietet die folgenden Vorteile.
Isolation: Indem Sie verschiedene Pfade an verschiedene Container-Apps weiterleiten, können Sie einzelne Komponenten bereitstellen und aktualisieren, ohne dass sich die gesamte Anwendung auswirkt.
Skalierbarkeit: Mit regelbasiertem Routing können Sie einzelne Container-Apps unabhängig vom Datenverkehr skalieren, den jede Container-App empfängt.
Benutzerdefinierte Routingregeln: Sie können z. B. Benutzer zu verschiedenen Versionen Ihrer Anwendung umleiten oder A/B-Tests implementieren.
Sicherheit: Sie können Auf jede Container-App zugeschnittene Sicherheitsmaßnahmen implementieren. Dies hilft Ihnen, die Angriffsfläche Ihrer Anwendung zu reduzieren.
Informationen zum Konfigurieren des regelbasierten Routings in Ihrer Container-Apps-Umgebung finden Sie unter Verwenden des regelbasierten Routings.
Peer-zu-Peer-Verschlüsselung in der Azure Container Apps-Umgebung
Azure-Container-Apps unterstützen die Peer-to-Peer-TLS-Verschlüsselung innerhalb der Umgebung. Durch Aktivieren dieses Features wird der gesamte Netzwerkdatenverkehr innerhalb der Umgebung mit einem privaten Zertifikat verschlüsselt, das innerhalb des Bereichs der Azure Container Apps-Umgebung gültig ist. Azure Container-Apps verwaltet diese Zertifikate automatisch.
Hinweis
Standardmäßig ist die Peer-zu-Peer-Verschlüsselung deaktiviert. Das Aktivieren der Peer-to-Peer-Verschlüsselung für Ihre Anwendungen kann die Antwortlatenz erhöhen und den maximalen Durchsatz in Szenarien mit hoher Auslastung verringern.
Das folgende Beispiel zeigt eine Umgebung mit aktivierter Peer-to-Peer-Verschlüsselung.
1 Eingehender TLS-Datenverkehr wird am Eingangsproxy am Edge der Umgebung beendet.
2 Datenverkehr zum und vom Eingangsproxy innerhalb der Umgebung wird mit einem privaten Zertifikat TLS-verschlüsselt und vom Empfänger entschlüsselt.
3 Aufrufe von App A an den FQDN von App B werden zuerst an den Eingangsproxy am Edge gesendet und sind mit TLS verschlüsselt.
4 Aufrufe von App A an App B mithilfe des App-Namens von App B werden direkt an App B gesendet und mit TLS verschlüsselt. Aufrufe zwischen Apps und Java-Komponenten werden auf die gleiche Weise behandelt wie die App für die App-Kommunikation und mit TLS verschlüsselt.
Anwendungen in einer Container Apps-Umgebung werden automatisch authentifiziert. Die Container Apps-Runtime unterstützt jedoch keine Autorisierung für die Zugriffssteuerung zwischen Anwendungen, die die integrierte Peer-zu-Peer-Verschlüsselung verwenden.
Wenn Ihre Apps mit einem Client außerhalb der Umgebung kommunizieren, wird die bidirektionale Authentifizierung mit mTLS unterstützt. Weitere Informationen finden Sie unter Konfigurieren von Clientzertifikaten.
Sie können die Peer-zu-Peer-Verschlüsselung mit den folgenden Befehlen aktivieren.
Beim Erstellen:
az containerapp env create \
--name <ENVIRONMENT_NAME> \
--resource-group <RESOURCE_GROUP> \
--location <LOCATION> \
--enable-peer-to-peer-encryption
Für eine vorhandene Container-App:
az containerapp env update \
--name <ENVIRONMENT_NAME> \
--resource-group <RESOURCE_GROUP> \
--enable-peer-to-peer-encryption