Share via


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

In diesem Lernprogramm erstellen Sie eine Container-App zu einem Azure Arc-fähigen Kubernetes-Cluster (Vorschau) und lernen Folgendes:

  • Erstellen einer Container-App in Azure Arc
  • Anzeigen der Diagnose Ihrer Anwendung

Voraussetzungen

Bevor Sie mit der Erstellung einer Container-App fortfahren, müssen Sie zuerst einen Azure Arc-fähigen Kubernetes-Cluster einrichten, um Azure-Container-Apps auszuführen.

Hinzufügen von Azure CLI-Erweiterungen

Starten Sie die Bash-Umgebung in Azure Cloud Shell.

Launch Cloud Shell in a new window.

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 remove --name containerapp
az extension add -s https://aka.ms/acaarccli/containerapp-latest-py2.py3-none-any.whl --yes

Erstellen einer Ressourcengruppe

Erstellen Sie eine Ressourcengruppe für die in diesem Lernprogramm erstellten Dienste.

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

Abrufen von benutzerdefinierten Standortinformationen

Rufen Sie die folgende Standortgruppe, den Namen und die ID von Ihrem Clusteradministrator ab. Details finden Sie unter Erstellen eines benutzerdefinierten Speicherorts .

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

Rufen Sie die benutzerdefinierte Standort-ID ab.

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

Abrufen der ID der verbundenen Umgebung

Nachdem Sie nun über die benutzerdefinierte Standort-ID verfügen, können Sie die verbundene Umgebung abfragen.

Eine verbundene Umgebung ist weitgehend identisch mit einer Standard-Container-Apps-Umgebung, 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')

Eine App erstellen

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 zum Log Analytics-Arbeitsbereich, der mit ihrer Container-Apps-Erweiterung konfiguriert ist, und wählen Sie dann "Protokolle " in der linken Navigation 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. Möglicherweise gibt es eine Verzögerung für Log Analytics, um mit dem Empfang von Protokollen von Ihrer Anwendung zu beginnen.

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 Namen der Container-App. Zusätzlich zu Protokollen, die Sie über Ihren Anwendungscode schreiben, enthält die spalte Log_s auch Protokolle beim Starten und Herunterfahren von Containern.

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

Nächste Schritte