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:

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 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?

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.

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-portalen. 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

Nästa steg

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