Freigeben über


Tutorial: Ertellen einer Azure Container-App in Kubernetes mit Azure Arc-Unterstützung (Vorschau)

In diesem Tutorial erstellen Sie eine Container-App in einem Kubernetes-Cluster mit Azure Arc-Unterstützung (Vorschau) und erfahren Folgendes:.

  • Erstellen einer Container-App in Azure Arc
  • Anzeigen der Diagnose für Ihre Anwendung

Voraussetzungen

Bevor Sie mit dem Erstellen einer Container-App fortfahren, müssen Sie zunächst einen Kubernetes-Cluster mit Azure Arc-Unterstützung zum Ausführen von Azure Container Apps einrichten.

Hinzufügen von Azure CLI-Erweiterungen

Starten Sie die Bash-Umgebung in Azure Cloud Shell.

Starten von Cloud Shell in einem neuen Fenster

Fügen Sie als Nächstes die erforderlichen Azure CLI-Erweiterungen hinzu.

Warnung

Mit dem folgenden Befehl wird eine benutzerdefinierte Container Apps-Erweiterung installiert, die nicht mit dem öffentlichen Clouddienst verwendet werden kann. Sie müssen die Erweiterung deinstallieren, wenn Sie zurück zur öffentlichen Azure-Cloud wechseln.

az extension add --upgrade --yes --name customlocation
az extension add --name containerapp  --upgrade --yes

Erstellen einer Ressourcengruppe

Erstellen Sie eine Ressourcengruppe für die in diesem Tutorial verwendeten Dienste:

myResourceGroup="my-container-apps-resource-group"
az group create --name $myResourceGroup --location eastus 

Abrufen von benutzerdefinierten Standortinformationen

Fragen Sie den Clusteradministrator nach Gruppe, Name und ID des Standorts. Ausführliche Informationen finden Sie unter Tutorial: Aktivieren von Azure Container Apps in Kubernetes mit Azure Arc-Unterstützung (Vorschau).

customLocationGroup="<RESOURCE_GROUP_CONTAINING_CUSTOM_LOCATION>"
customLocationName="<NAME_OF_CUSTOM_LOCATION>"

Rufen Sie die ID des benutzerdefinierten Standorts ab:

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

Abrufen der ID der verbundenen Umgebung

Sie verfügen nun über die ID des benutzerdefinierten Standorts und können jetzt die verbundene Umgebung abfragen.

Eine verbundene Umgebung ist weitgehend identisch mit einer Container Apps-Standardumgebung, aber Netzwerkeinschränkungen werden vom zugrunde liegenden Arc-fähigen Kubernetes-Cluster gesteuert.

myContainerApp="my-container-app"
myConnectedEnvironment=$(az containerapp connected-env list --custom-location $customLocationId -o tsv --query '[].id')

Erstellen einer App

Im folgenden Beispiel wird eine Node.js-App erstellt.

 az containerapp create \
    --resource-group $myResourceGroup \
    --name $myContainerApp \
    --environment $myConnectedEnvironment \
    --environment-type connected \
    --image mcr.microsoft.com/k8se/quickstart:latest \
    --target-port 80 \
    --ingress external

az containerapp browse --resource-group $myResourceGroup --name $myContainerApp

Abrufen von Diagnoseprotokollen mithilfe von Log Analytics

Hinweis

Eine Log Analytics-Konfiguration ist erforderlich, wenn Sie die Container Apps-Erweiterung installieren, um Diagnoseinformationen anzuzeigen. Wenn Sie die Erweiterung ohne Log Analytics installiert haben, überspringen Sie diesen Schritt.

Navigieren Sie zu dem Log Analytics-Arbeitsbereich, der mit Ihrer Container Apps-Erweiterung konfiguriert ist, und wählen Sie dann im linken Navigationsbereich Protokolle aus.

Führen Sie die folgende Beispielabfrage aus, um Protokolle der letzten 72 Stunden anzuzeigen.

Wenn beim Ausführen einer Abfrage ein Fehler auftritt, versuchen Sie es in 10 bis 15 Minuten erneut. Es kann eine Verzögerung geben, bis Log Analytics beginnt, Protokolle von Ihrer Anwendung zu empfangen.

let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"

Die Anwendungsprotokolle für alle Apps, die in Ihrem Kubernetes-Cluster gehostet werden, werden im Log Analytics-Arbeitsbereich in der benutzerdefinierten Protokolltabelle namens ContainerAppConsoleLogs_CL protokolliert.

  • Log_s enthält Anwendungsprotokolle für eine bestimmte Container Apps-Erweiterung.
  • AppName_s enthält den Container Apps-App-Namen. Zusätzlich zu Protokollen, die Sie über Ihren Anwendungscode schreiben, enthält die Spalte Log_s auch Protokolle zum Starten und Herunterfahren von Containern.

Weitere Informationen zu Protokollabfragen finden Sie unter Erste Schritte mit Kusto.

Nächste Schritte