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.
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.