Serviço de Aplicativo, Funções e Aplicativos Lógicos no Azure Arc (Visualização)

Você pode executar o Serviço de Aplicativo, Funções e Aplicativos Lógicos em um cluster Kubernetes habilitado para Azure Arc. O cluster Kubernetes pode ser local ou hospedado em uma nuvem de terceiros. Essa abordagem permite que os desenvolvedores de aplicativos aproveitem os recursos do Serviço de Aplicativo. Ao mesmo tempo, permite que seus administradores de TI mantenham a conformidade corporativa hospedando os aplicativos do Serviço de Aplicativo na infraestrutura interna. Ele também permite que outros operadores de TI protejam seus investimentos anteriores em outros provedores de nuvem executando o Serviço de Aplicativo em clusters Kubernetes existentes.

Nota

Para saber como configurar seu cluster Kubernetes para o Serviço de Aplicativo, Funções e Aplicativos Lógicos, consulte Criar um ambiente Kubernetes do Serviço de Aplicativo (Visualização).

Na maioria dos casos, os desenvolvedores de aplicativos precisam saber nada mais do que como implantar na região correta do Azure que representa o ambiente Kubernetes implantado. Para operadores que fornecem o ambiente e mantêm a infraestrutura subjacente do Kubernetes, você deve estar ciente dos seguintes recursos do Azure:

  • O cluster conectado, que é uma projeção do Azure da sua infraestrutura do Kubernetes. Para obter mais informações, consulte O que é o Kubernetes habilitado para Azure Arc?.
  • Uma extensão de cluster, que é um subrecurso do recurso de cluster conectado. A extensão do Serviço de Aplicativo instala os pods necessários no cluster conectado. Para obter mais informações sobre extensões de cluster, consulte Extensões de cluster no Kubernetes habilitado para Azure Arc.
  • Um local personalizado, que agrupa um grupo de extensões e as mapeia para um namespace para recursos criados. Para obter mais informações, consulte Locais personalizados sobre o Kubernetes habilitado para Azure Arc.
  • Um ambiente Kubernetes do Serviço de Aplicativo, que permite a configuração comum entre aplicativos, mas não relacionada a operações de cluster. Conceitualmente, ele é implantado no recurso de local personalizado e os desenvolvedores de aplicativos criam aplicativos nesse ambiente. Este recurso é descrito com mais detalhes no ambiente Kubernetes do Serviço de Aplicativo.

Limitações da pré-visualização pública

As limitações de visualização pública a seguir se aplicam a ambientes Kubernetes do Serviço de Aplicativo. Esta lista de limitações é atualizada à medida que as alterações e funcionalidades são disponibilizadas.

Limitação Detalhes
Regiões do Azure suportadas Leste dos EUA, Europa Ocidental
Requisito de rede de cluster Deve suportar LoadBalancer o tipo de serviço
Requisito de armazenamento em cluster Deve ter classe de armazenamento anexada ao cluster disponível para uso pela extensão para dar suporte à implantação e compilação de aplicativos baseados em código, quando aplicável
Característica: Rede Não disponível (depende da rede de cluster)
Funcionalidade: Identidades geridas Não disponível
Funcionalidade: Referências do cofre da chave Não disponível (depende de identidades gerenciadas)
Recurso: Extrair imagens do ACR com identidade gerenciada Não disponível (depende de identidades gerenciadas)
Funcionalidade: Edição no portal para Funções e Aplicações Lógicas Não disponível
Característica: Portal listagem de funções ou chaves Não disponível se o cluster não estiver acessível publicamente
Característica: Publicação FTP Não disponível
Registos O Log Analytics deve ser configurado com extensão de cluster; não por site

Pods criados pela extensão do Serviço de Aplicativo

Quando a extensão do Serviço de Aplicativo é instalada no cluster Kubernetes habilitado para Azure Arc, vários pods são criados no namespace de versão que foi especificado. Esses pods permitem que seu cluster Kubernetes seja uma extensão do provedor de recursos no Azure e dão suporte ao gerenciamento e à operação de Microsoft.Web seus aplicativos. Opcionalmente, você pode optar por fazer com que a extensão instale o KEDA para dimensionamento controlado por eventos.

A tabela a seguir descreve a função de cada pod criado por padrão:

Pod Description
<extensionName>-k8se-app-controller O pod do operador principal que cria recursos no cluster e mantém o estado dos componentes.
<extensionName>-k8se-envoy Uma camada de proxy front-end para todas as solicitações de plano de dados. Ele roteia o tráfego de entrada para os aplicativos corretos.
<extensionName>-k8se-activator Um destino de roteamento alternativo para ajudar com aplicativos que foram dimensionados para zero enquanto o sistema obtém a primeira instância disponível.
<extensionName>-k8se-build-service Suporta operações de implantação e serve o recurso Ferramentas avançadas.
<extensionName>-k8se-http-scaler Monitora o volume de solicitações de entrada para fornecer informações de dimensionamento ao KEDA.
<extensionName>-k8se-img-cacher Extrai imagens de espaço reservado e aplicativo para um cache local no nó.
<extensionName>-k8se-log-processor Reúne logs de aplicativos e outros componentes e os envia para o Log Analytics.
placeholder-azure-functions-* Usado para acelerar partidas a frio para o Azure Functions.

Ambiente Kubernetes do Serviço de Aplicativo

O recurso de ambiente Kubernetes do Serviço de Aplicativo é necessário para que os aplicativos possam ser criados. Ele permite a configuração comum a aplicativos no local personalizado, como o sufixo DNS padrão.

Apenas um recurso de ambiente Kubernetes pode ser criado em um local personalizado. Na maioria dos casos, um desenvolvedor que cria e implanta aplicativos não precisa estar diretamente ciente do recurso. Ele pode ser inferido diretamente a partir do ID de local personalizado fornecido. No entanto, ao definir modelos do Azure Resource Manager, qualquer recurso de plano precisa fazer referência à ID de recurso do ambiente diretamente. Os valores de local personalizados do plano e do ambiente especificado devem corresponder.

Perguntas frequentes sobre o Serviço de Aplicativo, Funções e Aplicativos Lógicos no Azure Arc (Visualização)

Quanto custa?

O Serviço de Aplicativo no Azure Arc é gratuito durante a visualização pública.

As aplicações Windows e Linux são suportadas?

Apenas aplicativos baseados em Linux são suportados, tanto código quanto contêineres personalizados. Não há suporte para aplicativos do Windows.

Quais pilhas de aplicativos internos são suportadas?

Todas as pilhas Linux integradas são suportadas.

Todos os tipos de implantação de aplicativos são suportados?

A implantação de FTP não é suportada. Atualmente az webapp up também não é suportado. Há suporte para outros métodos de implantação, incluindo Git, ZIP, CI/CD, Visual Studio e Visual Studio Code.

Quais recursos do Serviço de Aplicativo são suportados?

Durante o período de visualização, determinados recursos do Serviço de Aplicativo estão sendo validados. Quando houver suporte, as opções de navegação à esquerda no portal do Azure serão ativadas. Os recursos que ainda não são suportados permanecem acinzentados.

Todos os recursos de rede são suportados?

Não Recursos de rede, como conexões híbridas ou integração de rede virtual, não são suportados. O suporte à restrição de acesso foi adicionado em abril de 2022. A rede deve ser tratada diretamente nas regras de rede no próprio cluster do Kubernetes.

Há suporte para identidades gerenciadas?

Não Os aplicativos não podem receber identidades gerenciadas quando executados no Azure Arc. Se seu aplicativo precisar de uma identidade para trabalhar com outro recurso do Azure, considere usar uma entidade de serviço de aplicativo.

Existem limites de escala?

Todos os aplicativos implantados com o Serviço de Aplicativo do Azure no Kubernetes com o Azure Arc podem ser dimensionados dentro dos limites do cluster Kubernetes subjacente. Se o Cluster Kubernetes subjacente ficar sem recursos de computação disponíveis (CPU e memória principalmente), os aplicativos só poderão ser dimensionados para o número de instâncias do aplicativo que o Kubernetes pode agendar com o recurso disponível.

Quais logs são coletados?

Os logs para os componentes do sistema e seus aplicativos são gravados na saída padrão. Ambos os tipos de registo podem ser recolhidos para análise com as ferramentas padrão do Kubernetes. Você também pode configurar a extensão de cluster do Serviço de Aplicativo com um espaço de trabalho do Log Analytics e ele envia todos os logs para esse espaço de trabalho.

Por predefinição, os registos dos componentes do sistema são enviados para a equipa do Azure. Os logs do aplicativo não são enviados. Pode evitar que estes registos sejam transferidos ao definir logProcessor.enabled=false como definição de configuração da extensão. Essa definição de configuração também desabilitará o encaminhamento do aplicativo para seu espaço de trabalho do Log Analytics. A desativação do processador de log pode afetar o tempo necessário para quaisquer casos de suporte, e você será solicitado a coletar logs da saída padrão por outros meios.

O que devo fazer se vir um erro de registo de fornecedor?

Ao criar um recurso de ambiente Kubernetes, algumas assinaturas podem ver um erro "Nenhum provedor de recursos registrado encontrado". Os detalhes do erro podem incluir um conjunto de locais e versões de api que são considerados válidos. Se essa mensagem de erro for retornada, a assinatura deverá ser registrada novamente no provedor Microsoft.Web, uma operação que não tem impacto em aplicativos ou APIs existentes. Para se registrar novamente, use a CLI do Azure para executar az provider register --namespace Microsoft.Web --waito . Em seguida, tente novamente o comando Kubernetes environment.

Posso implantar a extensão de serviços de aplicativo em um cluster baseado em ARM64?

No momento, não há suporte para clusters baseados em ARM64.

Em quais distribuições do Kubernetes posso implantar a extensão?

A extensão foi validada no AKS, AKS no Azure Stack HCI, Google Kubernetes Engine, Amazon Elastic Kubernetes Service e Kubernetes Cluster API.

Notas de versão da extensão

Extensão de serviços de aplicativo v 0.9.0 (maio de 2021)

  • Versão de visualização pública inicial da extensão de serviços de aplicativo.
  • Suporte para implantações baseadas em código e contêiner de aplicativos Web, Function e Logic.
  • Suporte ao tempo de execução do aplicativo Web --- .NET 3.1 e 5.0; Nó JS 12 e 14; Python 3.6, 3.7 e 3.8; PHP 7.3 e 7.4; Ruby 2.5, 2.5.5, 2.6 e 2.6.2; Java SE 8u232, 8u242, 8u252, 11.05, 11.06 e 11.07; Tomcat 8.5, 8.5.41, 8.5.53, 8.5.57, 9.0, 9.0.20, 9.0.33 e 9.0.37.

Extensão de serviços de aplicativo v 0.10.0 (novembro de 2021)

  • Removido o requisito de endereço IP estático pré-atribuído necessário para atribuição ao ponto de extremidade Envoy
  • Atualize Keda para v2.4.0
  • Atualizar Envoy para v1.19.0
  • Atualizar o tempo de execução do Azure Function para v3.3.1
  • Defina a contagem de réplicas padrão do App Controller e do Envoy Controller como 2 para adicionar mais estabilidade

Se a sua extensão estava na versão estável e a versão secundária de atualização automática está definida como true, a extensão é atualizada automaticamente. Para atualizar manualmente a extensão para a versão mais recente, você pode executar o comando:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.10.0

Extensão de serviços de aplicativo v 0.11.0 (dezembro de 2021)

  • Adicionado suporte do Application Insights para aplicativos Web Java e .NET
  • Adicionado suporte para aplicativos Web .NET 6.0
  • .NET Core 2.0 removido
  • Problemas resolvidos que causavam falhas nas operações de troca de slots
  • Problemas resolvidos que os clientes enfrentaram durante a criação de aplicativos Web Ruby

Se a sua extensão estava na versão estável e a versão secundária de atualização automática está definida como true, a extensão é atualizada automaticamente. Para atualizar manualmente a extensão para a versão mais recente, você pode executar o comando:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.0

Extensão de serviços de aplicação v 0.11.1 (dezembro de 2021)

  • Versão secundária para resolver problema com a atualização do CRD

Se a sua extensão estava na versão estável e a versão secundária de atualização automática está definida como true, a extensão é atualizada automaticamente. Para atualizar manualmente a extensão para a versão mais recente, você pode executar o comando:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.1

Extensão de serviços de aplicativo v 0.12.0 (janeiro de 2022)

  • Suporte para proxy de saída
  • Suporte para compilações paralelas no serviço de compilação
  • Atualizar o enviado para 1.20.1
  • Problema resolvido com o suporte do Application Insights para aplicativos .NET

Se a sua extensão estava na versão estável e a versão secundária de atualização automática está definida como true, a extensão é atualizada automaticamente. Para atualizar manualmente a extensão para a versão mais recente, você pode executar o comando:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.0

Extensão de serviços de aplicativo v 0.12.1 (março de 2022)

  • Problema resolvido com o suporte a proxy de saída para permitir o registro no espaço de trabalho do Log Analytics

Se a sua extensão estava na versão estável e a versão secundária de atualização automática está definida como true, a extensão é atualizada automaticamente. Para atualizar manualmente a extensão para a versão mais recente, você pode executar o comando:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.1

Extensão de serviços de aplicativo v 0.12.2 (março de 2022)

  • Atualização para resolver falhas de atualização ao atualizar da v 0.12.0 quando o comprimento do nome da extensão é superior a 35 caracteres

Se a sua extensão estava na versão estável e a versão secundária de atualização automática está definida como true, a extensão é atualizada automaticamente. Para atualizar manualmente a extensão para a versão mais recente, você pode executar o comando:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.2

Extensão de serviços de aplicativo v 0.13.0 (abril de 2022)

  • Adicionado suporte para integração sem código do Application Insights para aplicativos Node JS
  • Adicionado suporte para restrições de acesso via CLI
  • Mais detalhes fornecidos quando a extensão não é instalada, para ajudar na solução de problemas

Se a sua extensão estava na versão estável e a versão secundária de atualização automática está definida como true, a extensão é atualizada automaticamente. Para atualizar manualmente a extensão para a versão mais recente, você pode executar o comando:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.0

Extensão de serviços de aplicativo v 0.13.1 (abril de 2022)

  • Atualização para resolver falhas de atualização observadas durante a atualização automática de clusters para v 0.13.0

Se a sua extensão estava na versão estável e a versão secundária de atualização automática está definida como true, a extensão é atualizada automaticamente. Para atualizar manualmente a extensão para a versão mais recente, você pode executar o comando:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.1

Extensão de serviços de aplicação v 0.13.5 (dezembro de 2023)

  • Atualização para suportar o Kubernetes versão 1.26 e superior
  • Atualizar o enviado para 1.2.1
  • Atualize Keda para v2.10.0
  • Atualize o EasyAuth para v1.6.20
  • Atualizar imagens de base para idiomas suportados

Se a sua extensão estava na versão estável e a versão secundária de atualização automática está definida como true, a extensão é atualizada automaticamente. Para atualizar manualmente a extensão para a versão mais recente, você pode executar o comando:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.5

Próximos passos

Criar um ambiente Kubernetes do Serviço de Aplicativo (Visualização)