Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze tutorial deploy je een container-app naar een bestaande Container Apps-verbonden omgeving op een Kubernetes-cluster met Azure Arc. Vervolgens verifieer je provisioning, DNS, ingress, applicatierespons en logs.
- Haal een specifieke gekoppelde omgeving op naam op.
- Maak een container-app met externe ingang.
- Controleer de revisie van de applicatie en de volledig gekwalificeerde domeinnaam.
- Stuur een verzoek naar de applicatie.
- Bekijk applicatielogs in Log Analytics, indien geconfigureerd.
- Verwijder de tutorialapplicatie.
Vereisten
Controleer voordat u begint, de volgende vereisten:
- Een verbonden omgeving die wordt gecreëerd door Enable Azure Container Apps te voltooien op Azure Arc-enabled Kubernetes.
- Azure CLI-toegang tot het abonnement dat de verbonden omgeving bevat.
- Azure-toestemming om container-apps te maken in de doelresourcegroep en verbonden omgeving.
- De resourcegroep en de naam van de verbonden omgeving.
- Netwerk- en DNS-toegang van je werkstation naar het ingangsadres van de verbonden omgeving.
- Optionele toestemming om de Log Analytics-werkruimte te bevragen die tijdens de installatie van extensies is geconfigureerd.
Voordat je een productieapplicatie uitrolt, raadpleeg Azure Container Apps op Azure Arc. Als de applicatie niet kan worden ingericht of niet bereikbaar wordt, raadpleeg je Problemen met Azure Container Apps op Kubernetes met Azure Arc oplossen.
Voeg de Azure CLI-extensie toe
Start de Bash-omgeving in Azure Cloud Shell.
Voeg vervolgens de vereiste Azure CLI-extensie toe.
az extension add --name containerapp --upgrade --yes
Maak een resourcegroep aan voor de applicatie
De container-app kan een andere resourcegroep gebruiken dan de verbonden omgeving. Stel de applicatieresourcegroep en de Azure-regio in die wordt gebruikt om de resource metadata op te slaan. De applicatiecontainer draait in de Kubernetes-cluster die is gekoppeld aan de verbonden omgeving.
APP_RESOURCE_GROUP="my-container-apps-resource-group"
AZURE_LOCATION="eastus"
az group create --name $APP_RESOURCE_GROUP --location $AZURE_LOCATION
Krijg de verbonden omgeving
Stel de resourcegroep en naam van de verbonden omgeving in:
CONNECTED_ENVIRONMENT_RESOURCE_GROUP="<CONNECTED_ENVIRONMENT_RESOURCE_GROUP>"
CONNECTED_ENVIRONMENT_NAME="<CONNECTED_ENVIRONMENT_NAME>"
Haal die specifieke verbonden omgeving op en controleer of deze klaar is:
CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env show \
--resource-group $CONNECTED_ENVIRONMENT_RESOURCE_GROUP \
--name $CONNECTED_ENVIRONMENT_NAME \
--query id \
--output tsv)
az containerapp connected-env show \
--resource-group $CONNECTED_ENVIRONMENT_RESOURCE_GROUP \
--name $CONNECTED_ENVIRONMENT_NAME \
--query "{Id:id,State:properties.provisioningState,Domain:properties.defaultDomain}" \
--output yaml
Ga alleen verder wanneer StateSucceeded is.
Maak de app aan en verifieer deze
Maak de voorbeeldtoepassing:
CONTAINER_APP_NAME="my-container-app"
az containerapp create \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--environment $CONNECTED_ENVIRONMENT_ID \
--environment-type connected \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external
Wacht tot de provisioning slaagt:
CONTAINER_APP_ID=$(az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query id \
--output tsv)
az resource wait --ids $CONTAINER_APP_ID --created --timeout 600
az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query "{State:properties.provisioningState,Revision:properties.latestReadyRevisionName,FQDN:properties.configuration.ingress.fqdn}" \
--output yaml
APP_FQDN=$(az containerapp show \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--query properties.configuration.ingress.fqdn \
--output tsv)
Ga alleen door wanneer State is Succeeded, Revision niet leeg is, en FQDN het domein van de verbonden omgeving bevat. Test DNS en de applicatierespons van een netwerk dat het ingangsadres van de verbonden omgeving kan bereiken:
nslookup $APP_FQDN
curl --fail --show-error "https://$APP_FQDN"
Je kunt de applicatie ook openen in een browser:
az containerapp browse \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME
Als DNS niet wordt opgelost, er een time-out optreedt voor de aanvraag of het antwoord niet succesvol is, raadpleeg Application ingress isn't reachable.
Diagnostische logboeken ophalen met Log Analytics
Notitie
Deze sectie is alleen van toepassing wanneer je Log Analytics configureert tijdens de installatie van de Container Apps-extensie. Als je Log Analytics niet hebt geconfigureerd, sla dan deze sectie over.
Open de Log Analytics-werkruimte die is geconfigureerd voor de Container Apps-extensie en selecteer Logs. Voer de volgende query uit om logs van de afgelopen 72 uur te tonen. De eerste inname kan 10–15 minuten duren.
let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"
De toepassingslogboeken voor alle apps die in uw Kubernetes-cluster worden gehost, worden vastgelegd in de Log Analytics-werkruimte in de aangepaste logboektabel met de naam ContainerAppConsoleLogs_CL.
-
Log_sbevat applicatielogberichten en containerlevenscyclusberichten. -
ContainerAppName_sidentificeert de container-app. Dit veld wordt gebruikt door de voorgaande query.
Meer informatie over logboekquery's vindt u in aan de slag met Kusto.
Maak de tutorialapplicatie schoon
Verwijder de voorbeeldcontainer-app:
az containerapp delete \
--resource-group $APP_RESOURCE_GROUP \
--name $CONTAINER_APP_NAME \
--yes
Als je de applicatieresourcegroep alleen voor deze tutorial hebt aangemaakt en die bevat geen andere bronnen, verwijder hem dan.
az group delete --name $APP_RESOURCE_GROUP --yes --no-wait
Verwijder de verbonden omgeving, aangepaste locatie, extensie of verbonden cluster niet, want andere applicaties kunnen deze bronnen delen.