App Service, Functions och Logic Apps i Azure Arc (förhandsversion)
Du kan köra App Service, Functions och Logic Apps på ett Azure Arc-aktiverat Kubernetes-kluster. Kubernetes-klustret kan finnas lokalt eller finnas i ett moln från tredje part. Med den här metoden kan apputvecklare dra nytta av funktionerna i App Service. Samtidigt kan it-administratörerna upprätthålla företagets efterlevnad genom att vara värd för App Service-apparna i den interna infrastrukturen. Det gör också att andra IT-operatörer kan skydda sina tidigare investeringar i andra molnleverantörer genom att köra App Service på befintliga Kubernetes-kluster.
Kommentar
Information om hur du konfigurerar kubernetes-klustret för App Service, Functions och Logic Apps finns i Skapa en App Service Kubernetes-miljö (förhandsversion).
I de flesta fall behöver apputvecklare inte veta mer än hur de distribuerar till rätt Azure-region som representerar den distribuerade Kubernetes-miljön. För operatörer som tillhandahåller miljön och underhåller den underliggande Kubernetes-infrastrukturen måste du vara medveten om följande Azure-resurser:
- Det anslutna klustret, som är en Azure-projektion av din Kubernetes-infrastruktur. Mer information finns i Vad är Azure Arc-aktiverade Kubernetes?.
- Ett klustertillägg, som är en underkälla till den anslutna klusterresursen. App Service-tillägget installerar de poddar som krävs i det anslutna klustret. Mer information om klustertillägg finns i Klustertillägg på Azure Arc-aktiverade Kubernetes.
- En anpassad plats som kombinerar en grupp med tillägg och mappar dem till ett namnområde för skapade resurser. Mer information finns i Anpassade platser ovanpå Azure Arc-aktiverade Kubernetes.
- En App Service Kubernetes-miljö som möjliggör konfiguration som är gemensam för appar men inte relaterade till klusteråtgärder. Konceptuellt distribueras den till den anpassade platsresursen och apputvecklare skapar appar i den här miljön. Den här resursen beskrivs mer detaljerat i App Service Kubernetes-miljön.
Begränsningar för offentlig förhandsversion
Följande begränsningar för offentlig förhandsversion gäller för App Service Kubernetes-miljöer. Den här listan över begränsningar uppdateras när ändringar och funktioner görs tillgängliga.
Begränsning | Details |
---|---|
Azure-regioner som stöds | USA, östra, Europa, västra |
Krav för klusternätverk | Måste ha stöd för LoadBalancer tjänsttyp |
Krav för nodoperativsystem | Endast Linux . |
Krav för klusterlagring | Måste ha klusteransluten lagringsklass tillgänglig för användning av tillägget för att stödja distribution och generering av kodbaserade appar där så är tillämpligt |
Funktion: Nätverk | Inte tillgängligt (förlitar sig på klusternätverk) |
Funktion: Hanterade identiteter | Inte tillgängligt |
Funktion: Key Vault-referenser | Inte tillgängligt (beror på hanterade identiteter) |
Funktion: Hämta bilder från ACR med hanterad identitet | Inte tillgängligt (beror på hanterade identiteter) |
Funktion: Redigering i portalen för Functions och Logic Apps | Inte tillgängliga |
Funktion: Portalens lista över funktioner eller nycklar | Inte tillgängligt om klustret inte kan nås offentligt |
Funktion: FTP-publicering | Inte tillgängliga |
Loggar | Log Analytics måste konfigureras med klustertillägget. inte per plats |
Poddar som skapats av App Service-tillägget
När App Service-tillägget har installerats i Det Azure Arc-aktiverade Kubernetes-klustret skapas flera poddar i det versionsnamnområde som angavs. Med de här poddarna kan kubernetes-klustret vara ett tillägg Microsoft.Web
till resursprovidern i Azure och stödja hantering och drift av dina appar. Du kan också välja att låta tillägget installera KEDA för händelsedriven skalning.
I följande tabell beskrivs rollen för varje podd som skapas som standard:
Podd | beskrivning |
---|---|
<extensionName>-k8se-app-controller |
Den kärnoperatorpodd som skapar resurser i klustret och underhåller komponenternas tillstånd. |
<extensionName>-k8se-envoy |
Ett klientdelsproxylager för alla dataplansbegäranden. Den dirigerar inkommande trafik till rätt appar. |
<extensionName>-k8se-activator |
Ett alternativt routningsmål som hjälper till med appar som har skalats till noll medan systemet hämtar den första tillgängliga instansen. |
<extensionName>-k8se-build-service |
Stöder distributionsåtgärder och hanterar funktionen Avancerade verktyg. |
<extensionName>-k8se-http-scaler |
Övervakar inkommande begärandevolym för att tillhandahålla skalningsinformation till KEDA. |
<extensionName>-k8se-img-cacher |
Hämtar platshållare och appbilder till en lokal cache på noden. |
<extensionName>-k8se-log-processor |
Samlar in loggar från appar och andra komponenter och skickar dem till Log Analytics. |
placeholder-azure-functions-* |
Används för att påskynda kallstarter för Azure Functions. |
App Service Kubernetes-miljö
App Service Kubernetes-miljöresursen krävs innan appar kan skapas. Det möjliggör konfiguration som är gemensam för appar på den anpassade platsen, till exempel standard-DNS-suffixet.
Endast en Kubernetes-miljöresurs kan skapas på en anpassad plats. I de flesta fall behöver en utvecklare som skapar och distribuerar appar inte vara direkt medveten om resursen. Det kan härledas direkt från det angivna anpassade plats-ID:t. När du definierar Azure Resource Manager-mallar måste dock alla planresurser referera till resurs-ID:t för miljön direkt. Planens och den angivna miljöns anpassade platsvärden måste överensstämmande.
Vanliga frågor och svar om App Service, Functions och Logic Apps i Azure Arc (förhandsversion)
- Vad kostar det?
- Stöds både Windows- och Linux-appar?
- Kan tillägget installeras på Windows-noder?
- Vilka inbyggda programstackar stöds?
- Stöds alla appdistributionstyper?
- Vilka App Service-funktioner stöds?
- Stöds alla nätverksfunktioner?
- Stöds hanterade identiteter?
- Finns det några skalningsgränser?
- Vilka loggar samlas in?
- Vad gör jag om jag ser ett providerregistreringsfel?
- Kan jag distribuera Application Services-tillägget i ett Arm64-baserat kluster?
- Vilka Kubernetes-distributioner kan jag distribuera tillägget på?
Vad kostar det?
App Service i Azure Arc är kostnadsfri under den offentliga förhandsversionen.
Stöds både Windows- och Linux-appar?
Endast Linux-baserade appar stöds, både kod och anpassade containrar. Windows-appar stöds inte.
Kan tillägget installeras på Windows-noder?
Nej, tillägget kan inte installeras på Windows-noder. Tillägget stöder endast installation på Linux-noder.
Vilka inbyggda programstackar stöds?
Alla inbyggda Linux-staplar stöds.
Stöds alla appdistributionstyper?
FTP-distribution stöds inte. För närvarande az webapp up
stöds inte heller. Andra distributionsmetoder stöds, inklusive Git, ZIP, CI/CD, Visual Studio och Visual Studio Code.
Vilka App Service-funktioner stöds?
Under förhandsgranskningsperioden verifieras vissa App Service-funktioner. När de stöds aktiveras deras vänstra navigeringsalternativ i Azure Portal. Funktioner som ännu inte stöds förblir nedtonade.
Stöds alla nätverksfunktioner?
Nej. Nätverksfunktioner som hybridanslutningar eller integrering av virtuella nätverk stöds inte. Stöd för åtkomstbegränsning lades till i april 2022. Nätverk ska hanteras direkt i nätverksreglerna i själva Kubernetes-klustret.
Stöds hanterade identiteter?
Nej. Appar kan inte tilldelas hanterade identiteter när de körs i Azure Arc. Om din app behöver en identitet för att arbeta med en annan Azure-resurs kan du överväga att använda ett huvudnamn för programtjänsten i stället.
Finns det några skalningsgränser?
Alla program som distribueras med Azure App Service på Kubernetes med Azure Arc kan skalas inom gränserna för det underliggande Kubernetes-klustret. Om det underliggande Kubernetes-klustret får slut på tillgängliga beräkningsresurser (cpu och minne i första hand) kan programmen bara skala till antalet instanser av programmet som Kubernetes kan schemalägga med tillgänglig resurs.
Vilka loggar samlas in?
Loggar för både systemkomponenter och dina program skrivs till standardutdata. Båda loggtyperna kan samlas in för analys med vanliga Kubernetes-verktyg. Du kan också konfigurera App Service-klustertillägget med en Log Analytics-arbetsyta och skicka alla loggar till den arbetsytan.
Som standard skickas loggar från systemkomponenter till Azure-teamet. Programloggar skickas inte. Du kan förhindra att dessa loggar överförs genom att ange logProcessor.enabled=false
som en tilläggskonfigurationsinställning. Den här konfigurationsinställningen inaktiverar även vidarebefordran av programmet till Log Analytics-arbetsytan. Om du inaktiverar loggprocessorn kan det påverka den tid som behövs för eventuella supportärenden, och du uppmanas att samla in loggar från standardutdata på något annat sätt.
Vad gör jag om jag ser ett providerregistreringsfel?
När du skapar en Kubernetes-miljöresurs kan vissa prenumerationer se felet "Ingen registrerad resursprovider hittades". Felinformationen kan innehålla en uppsättning platser och API-versioner som anses giltiga. Om det här felmeddelandet returneras måste prenumerationen registreras på nytt med Microsoft.Web-providern, en åtgärd som inte påverkar befintliga program eller API:er. Om du vill registrera igen använder du Azure CLI för att köra az provider register --namespace Microsoft.Web --wait
. Försök sedan använda kommandot Kubernetes-miljö igen.
Kan jag distribuera Application Services-tillägget i ett Arm64-baserat kluster?
Arm64-baserade kluster stöds inte just nu.
Vilka Kubernetes-distributioner kan jag distribuera tillägget på?
Tillägget har verifierats på AKS, AKS på Azure Stack HCI, Google Kubernetes Engine, Amazon Elastic Kubernetes Service och Kubernetes Cluster API.
Viktig information om tillägg
Programtjänsttillägg v 0.9.0 (maj 2021)
- Den första offentliga förhandsversionen av Application Services-tillägget.
- Stöd för kod- och containerbaserade distributioner av webb-, funktions- och logikprogram.
- Web application runtime support --- .NET 3.1 och 5.0; Node JS 12 och 14; Python 3.6, 3.7 och 3.8; PHP 7.3 och 7.4; Ruby 2.5, 2.5.5, 2.6 och 2.6.2; Java SE 8u232, 8u242, 8u252, 11.05, 11.06 och 11.07; Tomcat 8.5, 8.5.41, 8.5.53, 8.5.57, 9.0, 9.0.20, 9.0.33 och 9.0.37.
Programtjänsttillägg v 0.10.0 (november 2021)
- Krav för förtilldelad statisk IP-adress som krävs för tilldelning till Envoy-slutpunkten har tagits bort
- Uppgradera Keda till v2.4.0
- Uppgradera Envoy till v1.19.0
- Uppgradera Azure Function Runtime till v3.3.1
- Ange standardreplikantalet för appkontrollanten och envoykontrollanten till 2 för att öka stabiliteten ytterligare
Om tillägget var i den stabila versionen och den automatiska uppgraderingsversionen är inställd på true uppgraderas tillägget automatiskt. Om du vill uppgradera tillägget till den senaste versionen manuellt kan du köra kommandot:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.10.0
Programtjänsttillägg v 0.11.0 (december 2021)
- Application Insights-stöd har lagts till för Java- och .NET-webbprogram
- Stöd har lagts till för .NET 6.0-webbprogram
- .NET Core 2.0 har tagits bort
- Lösta problem som gjorde att växlingsåtgärder för fack misslyckades
- Lösta problem som kunder upplevde när ruby-webbprogram skapades
Om tillägget var i den stabila versionen och den automatiska uppgraderingsversionen är inställd på true uppgraderas tillägget automatiskt. Om du vill uppgradera tillägget till den senaste versionen manuellt kan du köra kommandot:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.0
Programtjänsttillägg v 0.11.1 (december 2021)
- Mindre version för att lösa problem med CRD-uppdatering
Om tillägget var i den stabila versionen och den automatiska uppgraderingsversionen är inställd på true uppgraderas tillägget automatiskt. Om du vill uppgradera tillägget till den senaste versionen manuellt kan du köra kommandot:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.1
Programtjänsttillägg v 0.12.0 (januari 2022)
- Stöd för utgående proxy
- Stöd för parallella versioner i byggtjänsten
- Uppgradera Envoy till 1.20.1
- Löst problem med Application Insights-stöd för .NET-program
Om tillägget var i den stabila versionen och den automatiska uppgraderingsversionen är inställd på true uppgraderas tillägget automatiskt. Om du vill uppgradera tillägget till den senaste versionen manuellt kan du köra kommandot:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.0
Programtjänsttillägg v 0.12.1 (mars 2022)
- Löst problem med stöd för utgående proxy för att aktivera loggning till Log Analytics-arbetsyta
Om tillägget var i den stabila versionen och den automatiska uppgraderingsversionen är inställd på true uppgraderas tillägget automatiskt. Om du vill uppgradera tillägget till den senaste versionen manuellt kan du köra kommandot:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.1
Programtjänsttillägg v 0.12.2 (mars 2022)
- Uppdatera för att lösa uppgraderingsfel vid uppgradering från v 0.12.0 när tilläggets namnlängd är över 35 tecken
Om tillägget var i den stabila versionen och den automatiska uppgraderingsversionen är inställd på true uppgraderas tillägget automatiskt. Om du vill uppgradera tillägget till den senaste versionen manuellt kan du köra kommandot:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.2
Programtjänsttillägg v 0.13.0 (april 2022)
- Stöd har lagts till för kodlös integrering av Application Insights för Node JS-program
- Stöd för åtkomstbegränsningar har lagts till via CLI
- Mer information finns när tillägget inte kan installeras, för att hjälpa till med felsökningsproblem
Om tillägget var i den stabila versionen och den automatiska uppgraderingsversionen är inställd på true uppgraderas tillägget automatiskt. Om du vill uppgradera tillägget till den senaste versionen manuellt kan du köra kommandot:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.0
Programtjänsttillägg v 0.13.1 (april 2022)
- Uppdatera för att lösa uppgraderingsfel som visas vid automatisk uppgradering av kluster till v 0.13.0
Om tillägget var i den stabila versionen och den automatiska uppgraderingsversionen är inställd på true uppgraderas tillägget automatiskt. Om du vill uppgradera tillägget till den senaste versionen manuellt kan du köra kommandot:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.1
Programtjänsttillägg v 0.13.5 (december 2023)
- Uppdatera för att stödja Kubernetes version 1.26 och senare
- Uppdatera Envoy till 1.2.1
- Uppdatera Keda till v2.10.0
- Uppdatera EasyAuth till v1.6.20
- Uppdatera basavbildningar för språk som stöds
Om tillägget var i den stabila versionen och den automatiska uppgraderingsversionen är inställd på true uppgraderas tillägget automatiskt. Om du vill uppgradera tillägget till den senaste versionen manuellt kan du köra kommandot:
az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.5