Samouczek: tworzenie aplikacji kontenera platformy Azure na platformie Kubernetes z obsługą usługi Azure Arc (wersja zapoznawcza)

W tym samouczku utworzysz aplikację kontenera w klastrze Kubernetes z włączoną usługą Azure Arc (wersja zapoznawcza) i nauczysz się:

  • Tworzenie aplikacji kontenera w usłudze Azure Arc
  • Wyświetlanie diagnostyki aplikacji

Wymagania wstępne

Przed kontynuowaniem tworzenia aplikacji kontenera należy najpierw skonfigurować klaster Kubernetes z obsługą usługi Azure Arc w celu uruchamiania usługi Azure Container Apps.

Dodawanie rozszerzeń interfejsu wiersza polecenia platformy Azure

Uruchom środowisko powłoki Bash w usłudze Azure Cloud Shell.

Launch Cloud Shell in a new window.

Następnie dodaj wymagane rozszerzenia interfejsu wiersza polecenia platformy Azure.

Ostrzeżenie

Następujące polecenie instaluje niestandardowe rozszerzenie usługi Container Apps, które nie może być używane z usługą w chmurze publicznej. Jeśli przełączysz się z powrotem do chmury publicznej platformy Azure, musisz odinstalować rozszerzenie.

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

Tworzenie grupy zasobów

Utwórz grupę zasobów dla usług utworzonych w tym samouczku.

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

Pobieranie informacji o lokalizacji niestandardowej

Pobierz następującą grupę lokalizacji, nazwę i identyfikator od administratora klastra. Aby uzyskać szczegółowe informacje, zobacz Tworzenie lokalizacji niestandardowej.

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

Pobierz identyfikator lokalizacji niestandardowej.

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

Pobieranie identyfikatora połączonego środowiska

Teraz, gdy masz identyfikator lokalizacji niestandardowej, możesz wykonać zapytanie dotyczące połączonego środowiska.

Połączone środowisko jest w dużej mierze takie samo jak standardowe środowisko usługi Container Apps, ale ograniczenia sieci są kontrolowane przez bazowy klaster Kubernetes z obsługą usługi Arc.

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

Utwórz aplikację

Poniższy przykład tworzy aplikację Node.js.

 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

Pobieranie dzienników diagnostycznych przy użyciu usługi Log Analytics

Uwaga

Konfiguracja usługi Log Analytics jest wymagana podczas instalowania rozszerzenia Container Apps w celu wyświetlenia informacji diagnostycznych. Jeśli rozszerzenie zainstalowano bez usługi Log Analytics, pomiń ten krok.

Przejdź do obszaru roboczego usługi Log Analytics skonfigurowanego przy użyciu rozszerzenia Container Apps, a następnie wybierz pozycję Dzienniki w obszarze nawigacji po lewej stronie.

Uruchom następujące przykładowe zapytanie, aby wyświetlić dzienniki w ciągu ostatnich 72 godzin.

Jeśli podczas uruchamiania zapytania wystąpi błąd, spróbuj ponownie w ciągu 10–15 minut. Może wystąpić opóźnienie rozpoczęcia odbierania dzienników z aplikacji przez usługę Log Analytics.

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

Dzienniki aplikacji dla wszystkich aplikacji hostowanych w klastrze Kubernetes są rejestrowane w obszarze roboczym usługi Log Analytics w niestandardowej tabeli dzienników o nazwie ContainerAppConsoleLogs_CL.

  • Log_s zawiera dzienniki aplikacji dla danego rozszerzenia usługi Container Apps
  • AppName_s zawiera nazwę aplikacji kontenera. Oprócz dzienników zapisywanych za pośrednictwem kodu aplikacji kolumna Log_s zawiera również dzienniki uruchamiania i zamykania kontenera.

Więcej informacji na temat zapytań dzienników można dowiedzieć się na temat rozpoczynania pracy z usługą Kusto.

Następne kroki