Servizio app, Funzioni e App per la logica in Azure Arc (anteprima)
È possibile eseguire servizio app, funzioni e app per la logica in un cluster Kubernetes abilitato per Azure Arc. Il cluster Kubernetes può essere locale oppure ospitato in un cloud di terze parti. Questo approccio consente agli sviluppatori di app di sfruttare le funzionalità del servizio app. Allo stesso tempo, consente agli amministratori IT di mantenere la conformità aziendale ospitando le app del servizio app nell'infrastruttura interna. Consente anche ad altri operatori IT di salvaguardare gli investimenti precedenti in altri provider di servizi cloud eseguendo il servizio app nei cluster Kubernetes esistenti.
Nota
Per informazioni su come configurare il cluster Kubernetes per il servizio app, le funzioni e le app per la logica, vedere Creare un ambiente Kubernetes del servizio app (anteprima).
Nella maggior parte dei casi, gli sviluppatori di app non devono sapere altro che come eseguire la distribuzione nell'area di Azure corretta che rappresenta l'ambiente Kubernetes distribuito. Per gli operatori che forniscono l'ambiente e gestiscono l'infrastruttura Kubernetes sottostante, è necessario tenere presente le risorse di Azure seguenti:
- Il cluster connesso, ovvero una proiezione di Azure dell'infrastruttura Kubernetes. Per altre informazioni, vedere Che cos'è Kubernetes abilitato per Azure Arc?
- Un'estensione del cluster, ossia una risorsa secondaria della risorsa cluster connessa. L'estensione del servizio app installa i pod necessari nel cluster connesso. Per altre informazioni sulle estensioni del cluster, vedere estensioni del cluster in Kubernetes con abilitazione di Azure Arc.
- Una posizione personalizzata, che raggruppa un gruppo di estensioni e le esegue il mapping a uno spazio dei nomi per le risorse create. Per altre informazioni, vedere Percorsi personalizzati in Azure Arc abilitato per Kubernetes.
- Un ambiente Kubernetes del servizio app, che consente la configurazione comune tra le app, ma non correlate alle operazioni del cluster. Concettualmente, viene distribuita nella risorsa percorso personalizzata e gli sviluppatori di app creano app in questo ambiente. Questa risorsa è descritta in modo più dettagliato in Ambiente Kubernetes del servizio app.
Limiti dell'anteprima pubblica
Le limitazioni dell'anteprima pubblica seguenti si applicano agli ambienti Kubernetes del servizio app. Questo elenco di limitazioni viene aggiornato man mano che vengono rese disponibili modifiche e funzionalità.
Limitazione | Dettagli |
---|---|
Aree di Azure supportate | Stati Uniti orientali, Europa occidentale |
Requisito di rete del cluster | Deve supportare il tipo di servizio LoadBalancer |
Requisito del sistema operativo del nodo | Solo Linux. |
Requisito di archiviazione del cluster | È necessario che la classe di archiviazione collegata al cluster sia disponibile per l'uso da parte dell'estensione per supportare la distribuzione e la compilazione di app basate su codice, se applicabile |
Funzionalità: Rete | Non disponibile (fare affidamento sulla rete del cluster) |
Funzionalità: Identità gestite | Non disponibile |
Funzionalità: riferimenti all'insieme di credenziali delle chiavi | Non disponibile (dipende dalle identità gestite) |
Funzionalità: eseguire il pull di immagini da Registro Azure Container con identità gestita | Non disponibile (dipende dalle identità gestite) |
Funzionalità: modifica nel portale per Funzioni e App per la logica | Non disponibile |
Funzionalità: elenco del portale di funzioni o chiavi | Non disponibile se il cluster non è raggiungibile pubblicamente |
Funzionalità: pubblicazione FTP | Non disponibile |
Registri | Log Analytics deve essere configurato con l'estensione del cluster; non per sito |
Pod creati dall'estensione del servizio app
Quando l'estensione del servizio app viene installata nel cluster Kubernetes abilitato per Azure Arc, vengono creati diversi pod nello spazio dei nomi versione specificato. Questi pod consentono al cluster Kubernetes di essere un'estensione del provider di risorse Microsoft.Web
in Azure e supportare la gestione e il funzionamento delle app. Facoltativamente, è possibile scegliere di installare l'estensione KEDA per il ridimensionamento basato su eventi.
La tabella seguente descrive il ruolo di ogni pod creato per impostazione predefinita:
Pod | Descrizione |
---|---|
<extensionName>-k8se-app-controller |
Pod dell'operatore principale che crea risorse nel cluster e mantiene lo stato dei componenti. |
<extensionName>-k8se-envoy |
Livello proxy front-end per tutte le richieste del piano dati. Instrada il traffico in ingresso alle app corrette. |
<extensionName>-k8se-activator |
Destinazione di routing alternativa per aiutare le app con scalabilità orizzontale a zero mentre il sistema ottiene la prima istanza disponibile. |
<extensionName>-k8se-build-service |
Supporta le operazioni di distribuzione e gestisce la funzionalità Strumenti avanzati. |
<extensionName>-k8se-http-scaler |
Monitora il volume delle richieste in ingresso per fornire informazioni di ridimensionamento per KEDA. |
<extensionName>-k8se-img-cacher |
Esegue il pull di immagini segnaposto e app in una cache locale nel nodo. |
<extensionName>-k8se-log-processor |
Raccoglie i log dalle app e da altri componenti e li invia a Log Analytics. |
placeholder-azure-functions-* |
Usato per velocizzare l'avvio a freddo per Funzioni di Azure. |
Ambiente Kubernetes del servizio app
La risorsa dell'ambiente Kubernetes del servizio app è necessaria prima che le app possano essere create. Consente la configurazione comune alle app nel percorso personalizzato, ad esempio il suffisso DNS predefinito.
È possibile creare una sola risorsa di ambiente Kubernetes in un percorso personalizzato. Nella maggior parte dei casi, uno sviluppatore che crea e distribuisce app non deve essere a conoscenza diretta della risorsa. Può essere dedotta direttamente dall'ID percorso personalizzato specificato. Tuttavia, quando si definiscono modelli di Azure Resource Manager, qualsiasi risorsa del piano deve fare riferimento direttamente all'ID risorsa dell'ambiente. I valori della posizione personalizzata del piano e dell'ambiente specificato devono corrispondere.
Domande frequenti su Servizio app, Funzioni e App per la logica in Azure Arc (anteprima)
- Quanto costa?
- Le app Windows e Linux sono supportate?
- L'estensione può essere installata nei nodi Windows?
- Quali stack di applicazioni predefiniti sono supportati?
- Tutti i tipi di distribuzione delle app sono supportati?
- Quali funzionalità del servizio app sono supportate?
- Tutte le funzionalità di rete sono supportate?
- Le identità gestite sono supportate?
- Esistono limiti di scalabilità?
- Quali log vengono raccolti?
- Cosa fare se viene visualizzato un errore di registrazione del provider?
- È possibile distribuire l'estensione Servizi applicazione in un cluster basato su Arm64?
- In quali distribuzioni Kubernetes è possibile distribuire l'estensione?
Quanto costa?
Il servizio app in Azure Arc è gratuito durante l'anteprima pubblica.
Le app Windows e Linux sono supportate?
Sono supportate solo le app basate su Linux, sia il codice che i contenitori personalizzati. Le app di Windows non sono supportate.
L'estensione può essere installata nei nodi Windows?
No, l'estensione non può essere installata nei nodi Windows. L'estensione supporta l'installazione solo in nodi Linux.
Quali stack di applicazioni predefiniti sono supportati?
Sono supportati tutti gli stack Linux predefiniti.
Tutti i tipi di distribuzione delle app sono supportati?
La distribuzione FTP non è supportata. Attualmente az webapp up
non è supportato. Sono supportati altri metodi di distribuzione, tra cui Git, ZIP, CI/CD, Visual Studio e Visual Studio Code.
Quali funzionalità del servizio app sono supportate?
Durante il periodo di anteprima, alcune funzionalità del servizio app vengono convalidate. Quando sono supportate, le opzioni di spostamento a sinistra nel portale di Azure verranno attivate. Le funzionalità non ancora supportate rimangono disattivate.
Tutte le funzionalità di rete sono supportate?
No. Le funzionalità di rete, ad esempio le connessioni ibride o l'integrazione della rete virtuale, non sono supportate. Il supporto per le restrizioni di accesso è stato aggiunto nell'aprile 2022. La rete deve essere gestita direttamente nelle regole di rete nel cluster Kubernetes stesso.
Le identità gestite sono supportate?
No. Le app non possono essere assegnate identità gestite durante l'esecuzione in Azure Arc. Se l'app necessita di un'identità per l'uso di un'altra risorsa di Azure, prendere in considerazione l'uso di un'entità servizio dell'applicazione.
Esistono limiti di scalabilità?
Tutte le applicazioni distribuite con il servizio app di Azure in Kubernetes con Azure Arc possono essere ridimensionate entro i limiti del cluster Kubernetes sottostante. Se il cluster Kubernetes sottostante esaurisce le risorse di calcolo disponibili (CPU e memoria principalmente), le applicazioni saranno in grado di ridimensionare solo il numero di istanze dell'applicazione che Kubernetes può pianificare con la risorsa disponibile.
Quali log vengono raccolti?
I log per i componenti di sistema e le applicazioni vengono scritti nell'output standard. Entrambi i tipi di log possono essere raccolti per l'analisi usando gli strumenti standard di Kubernetes. È anche possibile configurare l'estensione del cluster del servizio app con un'area di lavoro Log Analytics e invia tutti i log a tale area di lavoro.
Per impostazione predefinita, i log dei componenti di sistema vengono inviati al team di Azure. I log dell'applicazione non vengono inviati. È possibile impedire il trasferimento dei log impostando logProcessor.enabled=false
come impostazione di configurazione dell'estensione. Questa impostazione di configurazione disabiliterà anche l'inoltro dell'applicazione all'area di lavoro Log Analytics. La disabilitazione del processore dei log può influire sul tempo necessario per eventuali casi di supporto e verrà richiesto di raccogliere i log dall'output standard tramite altri mezzi.
Cosa fare se viene visualizzato un errore di registrazione del provider?
Quando si crea una risorsa di ambiente Kubernetes, alcune sottoscrizioni potrebbero visualizzare un errore "Nessun provider di risorse registrato trovato". I dettagli dell'errore possono includere un set di posizioni e versioni api considerate valide. Se viene restituito questo messaggio di errore, la sottoscrizione deve essere nuovamente registrata con il provider Microsoft.Web, un'operazione che non ha alcun impatto sulle applicazioni o sulle API esistenti. Per ripetere la registrazione, usare l'interfaccia della riga di comando di Azure per eseguire az provider register --namespace Microsoft.Web --wait
. Ripetere quindi il comando dell'ambiente Kubernetes.
È possibile distribuire l'estensione Servizi applicazione in un cluster basato su Arm64?
I cluster basati su Arm64 non sono attualmente supportati.
In quali distribuzioni Kubernetes è possibile distribuire l'estensione?
L'estensione è stata convalidata nel servizio Azure Kubernetes, nel servizio Azure Kubernetes in Azure Stack HCI, nel motore di Google Kubernetes, nel servizio Amazon Elastic Kubernetes e nell'API del cluster Kubernetes.
Note sulla versione dell'estensione
Estensione servizi applicazioni v 0.9.0 (maggio 2021)
- Versione di anteprima pubblica iniziale dell'estensione servizi applicazione.
- Supporto per le distribuzioni basate su codice e contenitore di applicazioni Web, funzioni e logica.
- Il runtime dell'applicazione Web supporta --- .NET 3.1 e 5.0; Nodo 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.
Estensione servizi applicazioni v 0.10.0 (novembre 2021)
- È stato rimosso il requisito per l'indirizzo IP statico pre-assegnato necessario per l'assegnazione all'endpoint Envoy
- Aggiornare Keda alla versione 2.4.0
- Eseguire l'aggiornamento di Envoy alla versione 1.19.0
- Aggiornare il runtime di Funzioni di Azure alla versione 3.3.1
- Impostare il numero di repliche predefinito di Controller app e Controller Envoy su 2 per aggiungere ulteriore stabilità
Se l'estensione si trova nella versione stabile e la versione secondaria di aggiornamento automatico è impostata su true, l'estensione viene aggiornata automaticamente. Per aggiornare manualmente l'estensione alla versione più recente, è possibile eseguire il comando:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.10.0
Estensione servizi applicazioni v 0.11.0 (dicembre 2021)
- Aggiunta del supporto di Application Insights per applicazioni Web Java e .NET
- Aggiunta del supporto per le applicazioni Web .NET 6.0
- Rimozione di .NET Core 2.0
- Problemi risolti che causavano l'esito negativo delle operazioni di scambio di slot
- Problemi risolti riscontrati dai clienti durante la creazione di applicazioni Web Ruby
Se l'estensione si trova nella versione stabile e la versione secondaria di aggiornamento automatico è impostata su true, l'estensione viene aggiornata automaticamente. Per aggiornare manualmente l'estensione alla versione più recente, è possibile eseguire il comando:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.0
Estensione servizi applicazioni v 0.11.1 (dicembre 2021)
- Versione secondaria per risolvere il problema relativo all'aggiornamento CRD
Se l'estensione si trova nella versione stabile e la versione secondaria di aggiornamento automatico è impostata su true, l'estensione viene aggiornata automaticamente. Per aggiornare manualmente l'estensione alla versione più recente, è possibile eseguire il comando:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.1
Estensione servizi applicazioni v 0.12.0 (gennaio 2022)
- Supporto per il proxy in uscita
- Supporto per compilazioni parallele nel servizio di compilazione
- Eseguire l'aggiornamento di Envoy alla versione 1.20.1
- Problema risolto con il supporto di Application Insights per le applicazioni .NET
Se l'estensione si trova nella versione stabile e la versione secondaria di aggiornamento automatico è impostata su true, l'estensione viene aggiornata automaticamente. Per aggiornare manualmente l'estensione alla versione più recente, è possibile eseguire il comando:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.0
Estensione servizi applicazioni v 0.12.1 (marzo 2022)
- Problema risolto con il supporto proxy in uscita per abilitare la registrazione nell'area di lavoro Log Analytics
Se l'estensione si trova nella versione stabile e la versione secondaria di aggiornamento automatico è impostata su true, l'estensione viene aggiornata automaticamente. Per aggiornare manualmente l'estensione alla versione più recente, è possibile eseguire il comando:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.1
Estensione servizi applicazioni v 0.12.2 (marzo 2022)
- Aggiornamento per risolvere gli errori di aggiornamento durante l'aggiornamento dalla versione 0.12.0 quando la lunghezza del nome dell'estensione supera i 35 caratteri
Se l'estensione si trova nella versione stabile e la versione secondaria di aggiornamento automatico è impostata su true, l'estensione viene aggiornata automaticamente. Per aggiornare manualmente l'estensione alla versione più recente, è possibile eseguire il comando:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.2
Estensione servizi applicazioni v 0.13.0 (aprile 2022)
- Aggiunta del supporto per l'integrazione senza codice di Application Insights per le applicazioni Node JS
- Aggiunta del supporto per restrizioni di accesso tramite l'interfaccia della riga di comando
- Altri dettagli forniti quando l'estensione non riesce a eseguire l'installazione, per facilitare la risoluzione dei problemi
Se l'estensione si trova nella versione stabile e la versione secondaria di aggiornamento automatico è impostata su true, l'estensione viene aggiornata automaticamente. Per aggiornare manualmente l'estensione alla versione più recente, è possibile eseguire il comando:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.0
Estensione servizi applicazioni v 0.13.1 (aprile 2022)
- Aggiornamento per risolvere gli errori di aggiornamento riscontrati durante l'aggiornamento automatico dei cluster alla versione 0.13.0
Se l'estensione si trova nella versione stabile e la versione secondaria di aggiornamento automatico è impostata su true, l'estensione viene aggiornata automaticamente. Per aggiornare manualmente l'estensione alla versione più recente, è possibile eseguire il comando:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.1
Estensione servizi applicazioni v 0.13.5 (dicembre 2023)
- Aggiornamento per supportare Kubernetes versione 1.26 e successive
- Aggiornare Envoy alla versione 1.2.1
- Aggiornare Keda alla versione 2.10.0
- Aggiornare EasyAuth alla versione 1.6.20
- Aggiornare le immagini di base per le lingue supportate
Se l'estensione si trova nella versione stabile e la versione secondaria di aggiornamento automatico è impostata su true, l'estensione viene aggiornata automaticamente. Per aggiornare manualmente l'estensione alla versione più recente, è possibile eseguire il comando:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.5