Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Usługa Azure App Service na platformie Kubernetes z obsługą usługi Arc zostanie wycofana 31 marca 2026 r. Od 30 września 2025 r. klienci nie będą już mogli instalować rozszerzenia. Żądamy migracji do innych rozwiązań, takich jak Azure Container Apps na Arc-enabled Kubernetes; migracja umożliwia również korzystanie z hybrydowej usługi Logic Apps dla obciążeń integracji.
Jeśli masz klaster Kubernetes z włączoną usługą Azure Arc, możesz użyć go do utworzenia niestandardowej lokalizacji z włączoną usługą App Service i wdrożenia w niej aplikacji internetowych, aplikacji funkcji i aplikacji logiki.
Platforma Kubernetes z obsługą usługi Azure Arc umożliwia uwidocznienie klastra Kubernetes w środowisku lokalnym lub w chmurze w usłudze App Service, Functions i Logic Apps na platformie Azure. Aplikację można utworzyć i wdrożyć w niej tak samo jak w innym regionie świadczenia usługi Azure.
Prerequisites
- Jeśli nie masz konta platformy Azure, zarejestruj się dzisiaj , aby uzyskać bezpłatne konto.
- Zapoznaj się z wymaganiami i ograniczeniami publicznej wersji zapoznawczej. Szczególnie ważne są wymagania dotyczące klastra.
Dodawanie rozszerzeń interfejsu wiersza polecenia platformy Azure
Uruchom środowisko powłoki Bash w usłudze Azure Cloud Shell.
Ponieważ te polecenia interfejsu wiersza polecenia nie są jeszcze częścią podstawowego zestawu interfejsu wiersza polecenia, dodaj je za pomocą następujących poleceń.
az extension add --upgrade --yes --name connectedk8s
az extension add --upgrade --yes --name k8s-extension
az extension add --upgrade --yes --name customlocation
az provider register --namespace Microsoft.ExtendedLocation --wait
az provider register --namespace Microsoft.Web --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube
Tworzenie połączonego klastra
Note
W tym samouczku usługa Azure Kubernetes Service (AKS) udostępnia konkretne instrukcje dotyczące konfigurowania środowiska od podstaw. Jednak w przypadku obciążenia produkcyjnego prawdopodobnie nie chcesz włączać usługi Azure Arc w klastrze usługi AKS, ponieważ jest on już zarządzany na platformie Azure. Kroki ułatwią zrozumienie usługi, ale w przypadku wdrożeń produkcyjnych powinny one być wyświetlane jako ilustracyjne, a nie normatywne. Zobacz Szybki start: łączenie istniejącego klastra Kubernetes z usługą Azure Arc , aby uzyskać ogólne instrukcje dotyczące tworzenia klastra Kubernetes z obsługą usługi Azure Arc.
Aby utworzyć połączony klaster:
Utwórz klaster w usłudze Azure Kubernetes Service z publicznym adresem IP. Zastąp
<group-name>ciąg odpowiednią nazwą grupy zasobów.AKS_CLUSTER_GROUP_NAME="<group-name>" # Name of resource group for the AKS cluster AKS_NAME="${aksClusterGroupName}-aks" # Name of the AKS cluster RESOURCE_LOCATION="eastus" # "eastus" or "westeurope" az group create -g $AKS_CLUSTER_GROUP_NAME -l $RESOURCE_LOCATION az aks create --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --enable-aad --generate-ssh-keysPobierz plik kubeconfig i przetestuj połączenie z klastrem. Domyślnie plik kubeconfig jest zapisywany w pliku
~/.kube/config.az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin kubectl get nsUtwórz grupę zasobów zawierającą zasoby usługi Azure Arc. Zastąp
<group-name>ciąg odpowiednią nazwą grupy zasobów.GROUP_NAME="<group-name>" # Name of resource group for the connected cluster az group create -g $GROUP_NAME -l $RESOURCE_LOCATIONPołącz utworzony klaster z usługą Azure Arc.
CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAMEZweryfikuj połączenie przy użyciu następującego polecenia. Właściwość powinna być wyświetlana
provisioningStatejakoSucceeded. Jeśli nie, uruchom polecenie ponownie po minucie.az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME
Tworzenie obszaru roboczego usługi Log Analytics
Chociaż obszar roboczy analizy dzienników nie jest wymagany do uruchamiania usługi App Service w usłudze Azure Arc, deweloperzy mogą pobierać dzienniki aplikacji dla swoich aplikacji uruchomionych w klastrze Kubernetes z obsługą usługi Azure Arc.
Dla uproszczenia utwórz teraz obszar roboczy.
WORKSPACE_NAME="$GROUP_NAME-workspace" # Name of the Log Analytics workspace az monitor log-analytics workspace create \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAMEUruchom następujące polecenia, aby uzyskać zakodowany identyfikator obszaru roboczego i klucz udostępniony dla istniejącego obszaru roboczego usługi Log Analytics. Będą one potrzebne w następnym kroku.
LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query customerId \ --output tsv) LOG_ANALYTICS_WORKSPACE_ID_ENC=$(printf %s $LOG_ANALYTICS_WORKSPACE_ID | base64 -w0) # Needed for the next step LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query primarySharedKey \ --output tsv) LOG_ANALYTICS_KEY_ENC=$(printf %s $LOG_ANALYTICS_KEY | base64 -w0) # Needed for the next step
Instalowanie rozszerzenia usługi App Service
Aby zainstalować rozszerzenie usługi App Service:
Ustaw następujące zmienne środowiskowe dla żądanej nazwy rozszerzenia usługi App Service, przestrzeni nazw klastra, w której należy aprowizować zasoby, oraz nazwę środowiska Kubernetes usługi App Service. Wybierz unikatową nazwę elementu
<kube-environment-name>, ponieważ jest częścią nazwy domeny aplikacji utworzonej w środowisku Kubernetes usługi App Service.EXTENSION_NAME="appservice-ext" # Name of the App Service extension NAMESPACE="appservice-ns" # Namespace in your cluster to install the extension and provision resources KUBE_ENVIRONMENT_NAME="<kube-environment-name>" # Name of the App Service Kubernetes environment resourceZainstaluj rozszerzenie usługi App Service w klastrze połączonym z usługą Azure Arc z włączoną usługą Log Analytics. Ponownie, chociaż usługa Log Analytics nie jest wymagana, nie można dodać jej do rozszerzenia później, więc łatwiej jest to zrobić teraz.
az k8s-extension create \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --extension-type 'Microsoft.Web.Appservice' \ --release-train stable \ --auto-upgrade-minor-version true \ --scope cluster \ --release-namespace $NAMESPACE \ --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \ --configuration-settings "appsNamespace=${NAMESPACE}" \ --configuration-settings "clusterName=${KUBE_ENVIRONMENT_NAME}" \ --configuration-settings "keda.enabled=true" \ --configuration-settings "buildService.storageClassName=default" \ --configuration-settings "buildService.storageAccessMode=ReadWriteOnce" \ --configuration-settings "customConfigMap=${NAMESPACE}/kube-environment-config" \ --configuration-settings "envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group=${aksClusterGroupName}" \ --configuration-settings "logProcessor.appLogs.destination=log-analytics" \ --config-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" \ --config-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}"Note
Aby zainstalować rozszerzenie bez integracji usługi Log Analytics, usuń z polecenia ostatnie trzy
--configuration-settingsparametry.W poniższej tabeli opisano różne
--configuration-settingsparametry podczas uruchamiania polecenia:Parameter Description Microsoft.CustomLocation.ServiceAccountKonto usługi, które należy utworzyć dla utworzonej lokalizacji niestandardowej. Zaleca się ustawienie tej wartości na wartość default.appsNamespacePrzestrzeń nazw do aprowizowania definicji aplikacji i zasobników. Musi być zgodna z przestrzenią nazw wydania rozszerzenia. clusterNameNazwa środowiska Kubernetes usługi App Service utworzonego na potrzeby tego rozszerzenia. keda.enabledCzy usługa KEDA powinna być zainstalowana w klastrze Kubernetes. trueAkceptuje lubfalse.buildService.storageClassNameNazwa klasy magazynu dla usługi kompilacji do przechowywania artefaktów kompilacji. Wartość, taka jak default, określa klasę o nazwiedefault, a nie każdą klasę, która jest oznaczona jako domyślna. Wartość domyślna to prawidłowa klasa magazynu dla usług AKS i AKS na platformie Azure Lokalna, ale może nie być w przypadku innych dystrybucji/platform.buildService.storageAccessModeTryb dostępu do użycia z nazwaną klasą magazynu. ReadWriteOnceAkceptuje lubReadWriteMany.customConfigMapNazwa mapy konfiguracji, która zostanie ustawiona przez środowisko Kubernetes usługi App Service. Obecnie musi ona mieć <namespace>/kube-environment-configwartość , zastępując<namespace>element wartościąappsNamespace.envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-groupNazwa grupy zasobów, w której znajduje się klaster usługi Azure Kubernetes Service. Prawidłowy i wymagany tylko wtedy, gdy bazowy klaster jest usługą Azure Kubernetes Service. logProcessor.appLogs.destinationOptional. log-analyticsAkceptuje lubnone, wybranie opcji Brak powoduje wyłączenie dzienników platformy.logProcessor.appLogs.logAnalyticsConfig.customerIdWymagane tylko wtedy, gdy logProcessor.appLogs.destinationjest ustawiona wartośćlog-analytics. Identyfikator obszaru roboczego usługi Log Analytics zakodowany w formacie base64. Ten parametr należy skonfigurować jako ustawienie chronione.logProcessor.appLogs.logAnalyticsConfig.sharedKeyWymagane tylko wtedy, gdy logProcessor.appLogs.destinationjest ustawiona wartośćlog-analytics. Klucz wspólny obszaru roboczego usługi Log Analytics zakodowany w formacie base64. Ten parametr należy skonfigurować jako ustawienie chronione.idZapisz właściwość rozszerzenia usługi App Service do późniejszego użycia.EXTENSION_ID=$(az k8s-extension show \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --query id \ --output tsv)Przed kontynuowaniem poczekaj na pełne zainstalowanie rozszerzenia. Możesz poczekać na ukończenie sesji terminalu, uruchamiając następujące polecenie:
az resource wait --ids $EXTENSION_ID --custom "properties.installState!='Pending'" --api-version "2020-07-01-preview"
Możesz użyć kubectl polecenia , aby wyświetlić zasobniki utworzone w klastrze Kubernetes:
kubectl get pods -n $NAMESPACE
Więcej informacji na temat tych zasobników i ich roli można uzyskać w systemie z zasobników utworzonych przez rozszerzenie usługi App Service.
Tworzenie lokalizacji niestandardowej
Lokalizacja niestandardowa na platformie Azure służy do przypisywania środowiska Kubernetes usługi App Service.
Ustaw następujące zmienne środowiskowe dla żądanej nazwy lokalizacji niestandardowej i identyfikatora klastra połączonego z usługą Azure Arc.
CUSTOM_LOCATION_NAME="my-custom-location" # Name of the custom location CONNECTED_CLUSTER_ID=$(az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME --query id --output tsv)Utwórz lokalizację niestandardową:
az customlocation create \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --host-resource-id $CONNECTED_CLUSTER_ID \ --namespace $NAMESPACE \ --cluster-extension-ids $EXTENSION_IDNote
Jeśli wystąpią problemy z tworzeniem lokalizacji niestandardowej w klastrze, może być konieczne włączenie funkcji lokalizacji niestandardowej w klastrze. Jest to wymagane w przypadku zalogowania się do interfejsu wiersza polecenia przy użyciu jednostki usługi lub zalogowania się za pomocą użytkownika Microsoft Entra z ograniczonymi uprawnieniami do zasobu klastra.
Sprawdź, czy lokalizacja niestandardowa została pomyślnie utworzona za pomocą następującego polecenia. Dane wyjściowe powinny wyświetlać
provisioningStatewłaściwość jakoSucceeded. Jeśli nie, uruchom go ponownie po minucie.az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAMEZapisz identyfikator lokalizacji niestandardowej dla następnego kroku.
CUSTOM_LOCATION_ID=$(az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query id \ --output tsv)
Tworzenie środowiska Kubernetes usługi App Service
Przed rozpoczęciem tworzenia aplikacji w lokalizacji niestandardowej potrzebne jest środowisko Kubernetes usługi App Service.
Utwórz środowisko Kubernetes usługi App Service:
az appservice kube create \ --resource-group $GROUP_NAME \ --name $KUBE_ENVIRONMENT_NAME \ --custom-location $CUSTOM_LOCATION_IDSprawdź, czy środowisko Kubernetes usługi App Service zostało pomyślnie utworzone za pomocą następującego polecenia. Dane wyjściowe powinny wyświetlać
provisioningStatewłaściwość jakoSucceeded. Jeśli nie, uruchom go ponownie po minucie.az appservice kube show --resource-group $GROUP_NAME --name $KUBE_ENVIRONMENT_NAME