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 auf Azure Arc-fähigem Kubernetes ermöglicht es Ihnen, Container Apps-Workloads auf unterstützter Kubernetes-Infrastruktur außerhalb von Azure-Rechenzentren auszuführen, einschließlich AKS auf Azure Local. Sie verwalten die Anwendungen als Azure-Ressourcen, während die Anwendungscontainer und die Container Apps Data Plane auf Ihrem Kubernetes-Cluster laufen.
Das Ausführen von Container-Apps auf Azure Arc kann Ihnen helfen:
- Führen Sie Anwendungen in der Nähe von Nutzern, Geräten oder lokalen Datenquellen aus, um die Latenz zu reduzieren.
- Führen Sie die Bearbeitung der Bewerbung an einem Ort auf, der die Anforderungen Ihrer Organisation an Datenresidenz, Souveränität oder Compliance unterstützt.
- Geben Sie den Anwendungsteams ein Container-Apps-Anwendungsmodell, während die Infrastrukturteams die Kontrolle über den Kubernetes-Cluster, das Netzwerk, den Speicher, die Kapazität und den Lebenszyklus behalten.
- Verwalten Sie Anwendungen an unterstützten Standorten über Azure Resource Manager, Azure CLI und das Azure-Portal.
- Nutzen Sie unterstützte Container-Apps wie Revisionen, Ingress, Autoscaling, Dapr, Jobs, Metriken, Log-Streaming, benutzerdefinierte Domains und Zugriff auf die Anwendungskonsole.
Container Apps auf Azure Arc ist kein gehosteter Rechendienst. Ihre Organisation stellt den zugrunde liegenden Kubernetes-Cluster sowie dessen Rechen-, Netzwerk- und Speicherressourcen bereit, sichert, skaliert, patcht und betreibt sie.
Um einen Cluster vorzubereiten und Ihre erste Anwendung bereitzustellen, schließen Sie Einrichten eines für Azure Arc aktivierten Kubernetes-Clusters zum Ausführen von Azure Container Apps ab, und schließen Sie dann Erstellen einer Container-App auf Azure Arc ab.
Während Sie Ihren Cluster konfigurieren, erstellen oder nutzen Sie diese Ressourcen:
Verbundener Cluster: Die Azure Resource Manager-Darstellung Ihres Kubernetes-Clusters. Azure Arc-Agenten, die im Cluster laufen, halten die Verbindung zu Azure aufrecht. Weitere Informationen finden Sie unter Was ist Kubernetes mit Azure Arc-Unterstützung?.
Container-Apps-Clustererweiterung: Im Cluster installierte Software, die die Container-Apps-Controller, Ingress, Skalierung, Dapr, Protokollierung und andere Data-Plane-Komponenten bereitstellt. Die Erweiterung ist eine untergeordnete Ressource des verbundenen Clusters.
Benutzerdefinierter Standort: Eine Azure-Standortressource, die den verbundenen Cluster, die Container-Apps-Erweiterung und den Kubernetes-Namensraum verknüpft, in dem Container-Apps-Ressourcen erstellt werden.
Container-Apps verbundene Umgebung: Die Anwendungsgrenze, in die Entwickler Container-Apps und Jobs einsetzen. Die verbundene Umgebung verweist auf den benutzerdefinierten Standort und enthält Konfigurationen, die von ihren Anwendungen geteilt werden.
Die Abhängigkeitsreihenfolge lautet: verbundener Cluster > Clustererweiterung > benutzerdefinierter Standort > verbundene Umgebung > Container-App oder Job. Wenn eine frühere Ressource nicht funktionsfähig ist, können Ressourcen später in der Kette möglicherweise nicht bereitgestellt werden.
Einschränkungen
Die folgenden Einschränkungen gelten für Azure Container Apps auf Azure Arc-fähigem Kubernetes.
| Einschränkung | Einzelheiten |
|---|---|
| Unterstützte Azure-Regionen | Australien Ost, Ostasien, Osten der USA, Nordzentral USA, Südostasien, Schweden Zentral, Großbritannien Südeuropa, Westeuropa und Westamerika |
| Clusternetzwerkanforderung | Muss den Diensttyp LoadBalancer unterstützen |
| Anforderung an das Knotenbetriebssystem | Nur Linux |
| Funktion: Verwaltete Identitäten | Nicht verfügbar |
| Funktion: Images aus ACR mit verwalteter Identität herausziehen | Nicht verfügbar (abhängig von verwalteten Identitäten) |
| Funktion: Azure Files | SMB-Treiber (>= v1.18.0) sollte vor der Nutzung von Azure Files SMB Storage installiert werden |
| Protokolle | Log Analytics muss mit der Clustererweiterung konfiguriert werden (nicht pro Anwendung). |
Die folgenden Features werden unterstützt:
- Beschriftungen
- Metriken
- Einfache Authentifizierung
- Protokolldatenstrom
- Resilienz
- Benutzerdefinierte Domänen
- Container Apps-Aufträge
- Revisionsverwaltung
- App-Containerkonsole
Wichtig
Bevor du die Erweiterung auf AKS unter Azure Local installierst, konfiguriere HAProxy oder einen anderen unterstützten Load Balancer und konfiguriere ein eigenes CoreDNS. Um CoreDNS für AKS auf Azure Local zu konfigurieren, führen Sie az containerapp arc setup-core-dns --distro AksAzureLocal aus. Für Befehlsoptionen siehe az containerapp arc.
Von der Container Apps-Erweiterung erstellte Ressourcen
Wenn die Container Apps-Erweiterung in dem Kubernetes-Cluster mit Azure Arc-Unterstützung installiert wird, werden mehrere Ressourcen im angegebenen Releasenamespace erstellt. Diese Ressourcen ermöglichen es Ihrem Cluster, als Erweiterung des Microsoft.App-Ressourcenanbieters zu fungieren, um die Verwaltung und den Betrieb Ihrer Apps zu unterstützen.
Die Erweiterung kann die KEDA-Komponenten installieren, die für ereignisgesteuerte und HTTP-Skalierung verwendet werden. Es kann nur eine unterstützte KEDA-Installation im Cluster laufen. Vor der Installation führen Sie kubectl get deployment -A | grep -i keda aus, um zu prüfen, ob bereits eine Installation vorhanden ist. Wenn KEDA bereits existiert, stoppen Sie und bestätigen Sie die unterstützte Koexistenzkonfiguration, bevor Sie fortfahren. Entferne nicht die bestehende KEDA-Installation und wende keine undokumentierten Erweiterungseinstellungen an, da andere Arbeitslasten davon abhängen könnten.
Die folgende Tabelle beschreibt die Rolle jeder für Sie erstellten Erweiterungskomponente:
| Pod | BESCHREIBUNG | Anzahl von Instanzen | Prozessor | Arbeitsspeicher | type |
|---|---|---|---|---|---|
<extensionName>-k8se-activator |
Wird als Teil der Skalierungspipeline verwendet | 2 | 100 Millicpu | 500 MB | ReplicaSet |
<extensionName>-k8se-billing |
Generierung von Abrechnungsdatensätzen | 3 | 100 Millicpu | 100 MB | ReplicaSet |
<extensionName>-k8se-containerapp-controller |
Der Kern-Operatorpod, der Ressourcen im Cluster erstellt und den Zustand der Komponenten verwaltet. | 2 | 100 Millicpu | 1 GB | ReplicaSet |
<extensionName>-k8se-envoy |
Eine Front-End-Proxyebene für alle HTTP-Anforderungen auf Datenebene. Es leitet den eingehenden Datenverkehr an die richtigen Apps weiter. | 3 | 1 Kern | 1.536 MB | ReplicaSet |
<extensionName>-k8se-envoy-controller |
Operator, der die Envoy-Konfiguration generiert | 2 | 200 Millicpu | 500 MB | ReplicaSet |
<extensionName>-k8se-event-processor |
Ein alternatives Routing-Ziel zur Unterstützung von Apps, die auf 0 (null) skaliert wurden, während das System die erste verfügbare Instanz erhält. | 2 | 100 Millicpu | 500 MB | ReplicaSet |
<extensionName>-k8se-http-scaler |
Überwacht das eingehende Anforderungsvolumen, um Skalierungsinformationen für KEDA bereitzustellen. | 1 | 100 Millicpu | 500 MB | ReplicaSet |
<extensionName>-k8se-keda-cosmosdb-scaler |
KEDA-Cosmos DB-Scaler | 1 | 10 m | 128 MB | ReplicaSet |
<extensionName>-k8se-keda-metrics-apiserver |
KEDA-Metrikserver | 1 | 1 Kern | 1.000 MB | ReplicaSet |
<extensionName>-k8se-keda-operator |
Skaliert Workloads von 0/1 auf N-Instanzen (vertikal und horizontal) | 1 | 100 Millicpu | 500 MB | ReplicaSet |
<extensionName>-k8se-log-processor |
Erfasst Protokolle von Apps und anderen Komponenten und sendet sie an Log Analytics. | 2 | 200 Millicpu | 500 MB | DaemonSet |
<extensionName>-k8se-mdm |
Agent für Metriken und Protokolle | 2 | 500 Millicpu | 500 MB | ReplicaSet |
| Dapr-Metriken | Pod für Dapr-Metriken | 1 | 100 Millicpu | 500 MB | ReplicaSet |
| dapr-operator | Verwaltet Komponentenaktualisierungen und Dienstendpunkte für Dapr | 1 | 100 Millicpu | 500 MB | ReplicaSet |
| dapr-placement-server | Wird nur für Akteure verwendet. Erstellt Zuordnungstabellen für die Zuordnung von Akteurinstanzen zu Pods. | 1 | 100 Millicpu | 500 MB | StatefulSet |
| dapr-sentry | Verwaltet mTLS zwischen Diensten und fungiert als Zertifizierungsstelle. | 2 | 800 Millicpu | 200 MB | ReplicaSet |
Häufig gestellte Fragen zu Azure Container-Apps in Azure Arc
- Azure Container Apps in Azure Arc
Welche Container Apps-Features werden unterstützt?
Für den dokumentierten Supportstatus und die Voraussetzungen jeder Funktion siehe Einschränkungen. Das Azure-Portal deaktiviert außerdem Steuerungen, die in einer verbundenen Umgebung nicht verfügbar sind. Der Support kann von der installierten Erweiterungsversion abhängen, daher sollten Sie die Versionshinweise der Erweiterung überprüfen, bevor Sie eine kürzlich hinzugefügte Funktion verwenden.
Werden verwaltete Identitäten unterstützt?
Nein. Du kannst in einer verbundenen Umgebung keine verwaltete Identität einer Container-App oder einem Job zuweisen. Managed-Identity-Authentifizierung für Azure Container Registry-Image-Pulls ist ebenfalls nicht verfügbar.
Wenn eine Anwendung sich bei einer Azure-Ressource authentifizieren muss, verwenden Sie eine Microsoft Entra-Anwendung und einen Service Principal:
- Erstellen oder identifizieren Sie eine Anwendungsregistrierung.
- Gewähren Sie seinem Service-Principal nur die Azure-Rolle, die von der Anwendung benötigt wird.
- Speichere die Zugangsdaten als Container-Apps-Geheimnis.
- Verweisen Sie in der Anwendung über Umgebungsvariablen auf das Geheimnis.
- Richten Sie einen Prozess für die Qualifikationsrotation ein.
Weitere Informationen finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Microsoft Entra ID. Vermeiden Sie es, Zugangsdaten in ein Image- oder Quellverzeichnis einzubetten.
Gibt es Grenzen in Bezug auf die Skalierung?
Container-Apps und -Jobs können nur innerhalb der zugeordneten CPU-, Speicher- und spezialisierten Ressourcen im zugrunde liegenden Kubernetes-Cluster skalieren. Das Festlegen einer maximalen Replikenanzahl reserviert keine Kapazität.
Wenn der Cluster keine Kapazität mehr hat, lässt Kubernetes neue Replikate ausstehend und die Anwendung erreicht ihre angeforderte Replikenzahl nicht. Überprüfen Sie diese Bedingung mit:
kubectl get pods -n <APPS_NAMESPACE>
kubectl describe pod <PENDING_POD_NAME> -n <APPS_NAMESPACE>
kubectl get events -n <APPS_NAMESPACE> --sort-by=.lastTimestamp
Plane die Clusterkapazität für die Erweiterungskomponenten, Peak-Anwendungsreplikate, Kubernetes-System-Workloads, rollende Upgrades und Node-Ausfälle.
Welche Protokolle werden gesammelt?
Protokolle für Systemkomponenten und Ihre Anwendungen werden in die Standardausgabe geschrieben.
Beide Protokolltypen können für die Analyse mithilfe von Kubernetes-Standardtools gesammelt werden. Sie können die Clustererweiterung für die Anwendungsumgebung auch mit einem Log Analytics-Arbeitsbereich konfigurieren. Daraufhin werden alle Protokolle an diesen Arbeitsbereich gesendet.
Standardmäßig werden Protokolle von Systemkomponenten an das Azure-Team gesendet. Anwendungsprotokolle werden nicht gesendet. Sie können verhindern, dass diese Protokolle übertragen werden, indem Sie logProcessor.enabled=false als Erweiterungskonfigurationseinstellung festlegen. Durch diese Konfigurationseinstellung wird die Weiterleitung der Anwendung an Ihren Log Analytics-Arbeitsbereich deaktiviert. Das Deaktivieren des Protokollprozessors kann sich auf die Zeit auswirken, die für Supportfälle benötigt wird, und Sie werden aufgefordert, Protokolle aus der Standardausgabe auf andere Weise zu erfassen.
Wie kann ich SMB-Treiber installieren?
Sie können den SMB-Treiber mit dem folgenden Helm-Befehl installieren. Weitere Installationsmethoden finden Sie unter Install driver on a Kubernetes cluster.
helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.18.0
Kann die Erweiterung auf Windows-Knoten installiert werden?
Nein, die Erweiterung kann nicht auf Windows-Knoten installiert werden. Die Erweiterung unterstützt nur die Installation auf Linux-Knoten.
Kann ich die Container Apps Erweiterung auf einem Arm64-basierten Cluster bereitstellen?
Nein. Die Erweiterung unterstützt keine Arm64-basierten Cluster.
Verwandte Inhalte
- Richte einen Azure Arc-fähigen Kubernetes-Cluster ein, um Azure Container Apps auszuführen
- Erstellen einer Container-App in Azure Arc
- Problembehandlung für Azure Container Apps in Azure Arc-fähigem Kubernetes
- Übersicht über Azure Arc fähige Kubernetes
- Benutzerdefinierte Standorte auf Azure Arc-fähigem Kubernetes
- Cluster-Erweiterungen auf Azure Arc-enabled Kubernetes
-
az containerapp arcCLI-Referenz - Versionshinweise zur Azure Container Apps-Erweiterung