App Service, Functions och Logic Apps på Azure Arc (förhandsversion)

Du kan köra App Service, Functions och Logic Apps på ett Azure Arc kubernetes-kluster. Kubernetes-klustret kan finnas lokalt eller 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örer upprätthålla företagets efterlevnad genom att vara värd för App Service på intern infrastruktur. Det gör det också möjligt för andra IT-operatörer att skydda sina tidigare investeringar i andra molnleverantörer genom App Service på befintliga Kubernetes-kluster.

Anteckning

Information om hur du ställer in 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 något 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:

Offentliga begränsningar i förhandsversionen

Följande begränsningar för offentlig förhandsversion gäller för App Service Kubernetes-miljöer. De uppdateras när ändringar görs tillgängliga.

Begränsning Information
Azure-regioner som stöds USA, östra, Europa, västra
Krav på klusternätverk Måste ha LoadBalancer stöd för tjänsttyp och ange en offentligt adresserbar statisk IP-adress
Krav för klusterlagring Måste ha klusterkopplad lagringsklass tillgänglig för användning av tillägget för att stödja distribution och version av kodbaserade appar där det är tillämpligt
Funktion: Nätverk Inte tillgängligt (förlita dig på klusternätverk)
Funktion: Hanterade identiteter Inte tillgängligt
Funktion: Nyckelvalvsreferenser Inte tillgängligt (beror på hanterade identiteter)
Funktion: Hämta avbildningar 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ängligt
Funktion: FTP-publicering Inte tillgängligt
Loggar Log Analytics måste konfigureras med klustertillägget. inte per plats

Poddar som skapats av App Service tillägget

När App Service har installerats på det Azure Arc Kubernetes-kluster ser du flera poddar som skapats i det angivna namnområdet för versionen. Med dessa poddar kan ditt Kubernetes-kluster vara ett tillägg till resursprovidern i Azure och ge stöd Microsoft.Web för hantering och drift av dina appar. Du kan också välja att tillägget ska installera KEDA för händelsedriven skalning.

I följande tabell beskrivs rollen för varje podd som skapas som standard:

Pod Beskrivning
<extensionName>-k8se-app-controller Kärnoperator-podden som skapar resurser i klustret och underhåller komponenternas tillstånd.
<extensionName>-k8se-envoy Ett frontend-proxylager för alla dataplansbegäranden. Den dirigerar den inkommande trafiken till rätt appar.
<extensionName>-k8se-activator Ett alternativt routningsmål för att hjälpa till med appar som har skalats till noll medan systemet får den första instansen tillgänglig.
<extensionName>-k8se-build-service Stöder distributionsåtgärder och hanterar funktionen Avancerade verktyg.
<extensionName>-k8se-http-scaler Övervakar volymen för inkommande förfrågningar för att kunna 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 snabba upp kallstarter för Azure Functions.

App Service Kubernetes-miljö

Den 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 dns-standardsuffixet.

Endast en Kubernetes-miljöresurs kan skapas på en anpassad plats. I de flesta fall behöver utvecklare som skapar och distribuerar appar inte vara direkt medvetna om resursen. Det kan härledas direkt från det angivna anpassade plats-ID:t. När du definierar Azure Resource Manager måste alla planresurser referera direkt till miljöns resurs-ID. De anpassade platsvärdena för planen och den angivna miljön måste matcha.

Vanliga frågor och svar App Service, Functions och Logic Apps på Azure Arc (förhandsversion)

Vad kostar det?

App Service på 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.

Vilka inbyggda programstackar stöds?

Alla inbyggda Linux-stackar stöds.

Stöds alla typer av appdistributioner?

FTP-distribution stöds inte. För az webapp up närvarande 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örhandsversionsperioden verifieras vissa App Service funktioner. När de stöds kommer deras vänstra navigeringsalternativ i Azure Portal aktiveras. Funktioner som ännu inte stöds är nedtonade.

Stöds nätverksfunktioner?

Nej. Nätverksfunktioner som hybridanslutningar, Virtual Network eller IP-begränsningar stöds inte. Nätverk ska hanteras direkt i nätverksregler 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 bör 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 Azure App Service på Kubernetes 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 (främst processor och minne) kommer programmen bara att kunna skalas till det antal instanser av programmet som Kubernetes kan schemalägga med tillgängliga resurser.

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 med en Log Analytics-arbetsytaså skickas 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. Detta inaktiverar även vidarebefordran av program till din Log Analytics-arbetsyta. Om du inaktiverar loggprocessorn kan det påverka den tid som krävs för 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 felet "Ingen registrerad resursprovider hittades" visas för vissa prenumerationer. Felinformationen kan innehålla en uppsättning platser och API-versioner som anses vara giltiga. Om detta inträffar kan det vara så att prenumerationen måste registreras igen hos Microsoft.Web-providern, en åtgärd som inte påverkar befintliga program eller API:er. Om du vill registrera om använder du Azure CLI för att köra az provider register --namespace Microsoft.Web --wait . Försök sedan igen med kubernetes-miljökommandot.

Kan jag distribuera Application Services-tillägget i ett ARM64-baserat kluster?

ARM64-baserade kluster stöds inte för närvarande.

Tilläggsreturanteckningar

Programtjänsttillägg v 0.9.0 (maj 2021)

  • Första offentliga förhandsversionen av Application Services-tillägget.
  • Stöd för kod- och containerbaserade distributioner av webb-, funktions- och logikprogram.
  • Stöd för körning av webbprogram – .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)

Om tillägget har den stabila versionen och den automatiska uppgraderingsversionen är inställd på aktiverad uppgraderas tillägget automatiskt. Om du vill uppgradera tillägget till den senaste versionen av tillägget manuellt kan du köra kommandot nedan

  • Krav för förtilldelning av 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 standardantalet repliker för App Controller och Envoy-kontrollanten till 2 för att lägga till ytterligare stabilitet

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 nedan:

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

Nästa steg

Skapa en App Service Kubernetes-miljö (förhandsversion)