Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
O Serviço de Aplicativo do Azure no Kubernetes habilitado para Arc será desativado em 31 de março de 2026. A partir de 30 de setembro de 2025, os clientes não poderão mais instalar a extensão. Solicitamos que você migre para outras soluções, como os Aplicativos de Contêiner do Azure no Kubernetes habilitado para Arc. A migração também permite que você aproveite os Aplicativos Lógicos Híbridos para suas cargas de trabalho de integração.
Se você tem um cluster do Kubernetes habilitado para Azure Arc, use-o para criar uma localização personalizada habilitada para o Serviço de Aplicativo e implante aplicativos Web, aplicativos de funções e aplicativos lógicos nele.
O Kubernetes habilitado para Azure Arc permite que você torne seu cluster do Kubernetes local ou de nuvem visível para o Serviço de Aplicativo, o Functions e os Aplicativos Lógicos no Azure. Você pode criar um aplicativo e implantá-lo, assim como outra região do Azure.
Pré-requisitos
- Caso você não tenha uma conta do Azure, inscreva-se hoje mesmo em uma conta gratuita.
- Revise os requisitos e limitações da visualização pública. De particular importância são os requisitos de cluster.
Adicionar extensões da CLI do Azure
Inicie o ambiente Bash no Azure Cloud Shell.
Como esses comandos da CLI ainda não fazem parte do conjunto da CLI principal, adicione-os com os comandos a seguir.
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
Criar um cluster conectado
Observação
Este tutorial usa o AKS (Serviço de Kubernetes do Azure) para fornecer instruções concretas para configurar um ambiente do zero. No entanto, para uma carga de trabalho de produção, você provavelmente não irá querer habilitar o Azure Arc em um cluster do AKS, pois ele já é gerenciado no Azure. As etapas ajudarão você a começar a entender o serviço, mas para implantações de produção, elas devem ser interpretadas como ilustrativas, não prescritivas. Confira Guia de Início Rápido: Conectar um cluster existente do Kubernetes ao Azure Arc para obter instruções gerais sobre como criar um cluster do Kubernetes habilitado para Azure Arc.
Para criar um cluster conectado:
Crie um cluster no Serviço de Kubernetes do Azure com um endereço IP público. Substitua
<group-name>pelo nome do grupo de recursos desejado.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-keysObtenha o arquivo kubeconfig e teste sua conexão com o cluster. Por padrão, o arquivo kubeconfig é salvo em
~/.kube/config.az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin kubectl get nsCrie um grupo de recursos para conter os recursos do Azure Arc. Substitua
<group-name>pelo nome do grupo de recursos desejado.GROUP_NAME="<group-name>" # Name of resource group for the connected cluster az group create -g $GROUP_NAME -l $RESOURCE_LOCATIONConecte o cluster criado ao Azure Arc.
CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAMEValide a conexão com o comando a seguir. Ela mostrará a propriedade
provisioningStatecomoSucceeded. Caso contrário, execute o comando novamente após um minuto.az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME
Criar um espaço de trabalho do Log Analytics
Embora um workspace do Log Analytics não seja necessário para executar o Serviço de Aplicativo no Azure Arc, é assim que os desenvolvedores podem obter logs dos aplicativos em execução no cluster do Kubernetes habilitado para Azure Arc.
Para simplificar, crie o workspace agora.
WORKSPACE_NAME="$GROUP_NAME-workspace" # Name of the Log Analytics workspace az monitor log-analytics workspace create \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAMEExecute os comandos a seguir para obter a ID e a chave compartilhada codificadas de um workspace existente do Log Analytics. Você precisará deles na próxima etapa.
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
Instalar a extensão do Serviço de Aplicativo
Para instalar a extensão do Serviço de Aplicativo:
Defina as variáveis de ambiente a seguir para o nome desejado da extensão do Serviço de Aplicativo, o namespace do cluster no qual os recursos devem ser provisionados e o nome do ambiente de Kubernetes do Serviço de Aplicativo. Escolha um nome exclusivo para
<kube-environment-name>, porque ele faz parte do nome de domínio do aplicativo criado no ambiente de Kubernetes do Serviço de Aplicativo.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 resourceInstale a extensão do Serviço de Aplicativo no cluster conectado ao Azure Arc, com o Log Analytics habilitado. Novamente, embora o Log Analytics não seja necessário, não será possível adicioná-lo à extensão posteriormente. Portanto, é mais fácil fazer isso agora.
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}"Observação
Para instalar a extensão sem a integração do Log Analytics, remova os três últimos parâmetros
--configuration-settingsdo comando.A seguinte tabela descreve os vários parâmetros
--configuration-settingsdurante a execução do comando:Parâmetro Descrição Microsoft.CustomLocation.ServiceAccountA conta de serviço que deve ser criada para o local personalizado que é criado. Recomendamos que isso seja definido com o valor default.appsNamespaceO namespace no qual as definições de aplicativo e os pods serão provisionados. Precisa corresponder àquele do namespace de versão da extensão. clusterNameO nome do ambiente de Kubernetes do Serviço de Aplicativo que é criado nessa extensão. keda.enabledIndica se o KEDA deve ser instalado no cluster do Kubernetes. Aceita trueoufalse.buildService.storageClassNameO nome da classe de armazenamento para que o serviço de build armazene artefatos de compilação. Um valor como defaultespecifica uma classe chamadadefault, não qualquer classe marcada como padrão. Padrão é uma classe de armazenamento válida para AKS e AKS no Azure Local, mas pode não ser para outras distribuições/plataformas.buildService.storageAccessModeO modo de acesso a ser usado com a classe de armazenamento nomeada. Aceita ReadWriteOnceouReadWriteMany.customConfigMapO nome do mapa de configurações que será definido pelo ambiente de Kubernetes do Serviço de Aplicativo. No momento, ele precisa ser <namespace>/kube-environment-config, substituindo<namespace>pelo valor deappsNamespace.envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-groupO nome do grupo de recursos no qual o cluster do Serviço de Kubernetes do Azure reside. Válido e obrigatório somente quando o cluster subjacente for o Serviço de Kubernetes do Azure. logProcessor.appLogs.destinationOpcional. Aceita log-analyticsounone, escolher nenhum desabilita os logs da plataforma.logProcessor.appLogs.logAnalyticsConfig.customerIdObrigatório somente quando logProcessor.appLogs.destinationestiver definido comolog-analytics. A ID do workspace do Log Analytics codificada em base64. Esse parâmetro deve ser definido como uma configuração protegida.logProcessor.appLogs.logAnalyticsConfig.sharedKeyObrigatório somente quando logProcessor.appLogs.destinationestiver definido comolog-analytics. A chave compartilhada do workspace do Log Analytics codificada em base64. Esse parâmetro deve ser definido como uma configuração protegida.Salve a propriedade
idda extensão do Serviço de Aplicativo para mais tarde.EXTENSION_ID=$(az k8s-extension show \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --query id \ --output tsv)Aguarde até que a extensão seja instalada por completo antes de continuar. Você pode fazer com que a sessão de terminal aguarde até que isso seja concluído executando o seguinte comando:
az resource wait --ids $EXTENSION_ID --custom "properties.installState!='Pending'" --api-version "2020-07-01-preview"
Use kubectl para ver os pods criados no cluster do Kubernetes:
kubectl get pods -n $NAMESPACE
Saiba mais sobre esses pods e a função deles no sistema em Pods criado pela extensão do Serviço de Aplicativo.
Criar uma localização personalizada
A localização personalizada no Azure é usada para atribuir o ambiente de Kubernetes do Serviço de Aplicativo.
Defina as variáveis de ambiente a seguir para o nome desejado da localização personalizada e para a ID do cluster conectado do 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)Crie a localização personalizada:
az customlocation create \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --host-resource-id $CONNECTED_CLUSTER_ID \ --namespace $NAMESPACE \ --cluster-extension-ids $EXTENSION_IDObservação
Se você tiver problemas ao criar um local personalizado no cluster, talvez seja necessário habilitar o recurso de localização personalizada no cluster. Isso será necessário se você fizer logon na CLI usando uma Entidade de Serviço ou se você estiver conectado com um usuário do Microsoft Entra com permissões restritas no recurso de cluster.
Valide se a localização personalizada foi criada com êxito com o comando a seguir. A saída deverá mostrar a propriedade
provisioningStatecomoSucceeded. Caso contrário, execute-a novamente após um minuto.az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAMESalve a ID de localização personalizada para a próxima etapa.
CUSTOM_LOCATION_ID=$(az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query id \ --output tsv)
Criar o ambiente de Kubernetes do Serviço de Aplicativo
Para começar a criar aplicativos na localização personalizada, você precisa ter um ambiente de Kubernetes do Serviço de Aplicativo.
Crie o ambiente de Kubernetes do Serviço de Aplicativo:
az appservice kube create \ --resource-group $GROUP_NAME \ --name $KUBE_ENVIRONMENT_NAME \ --custom-location $CUSTOM_LOCATION_IDValide se o ambiente de Kubernetes do Serviço de Aplicativo foi criado com êxito com o comando a seguir. A saída deverá mostrar a propriedade
provisioningStatecomoSucceeded. Caso contrário, execute-a novamente após um minuto.az appservice kube show --resource-group $GROUP_NAME --name $KUBE_ENVIRONMENT_NAME