App Service, Functions en Logic Apps in Azure Arc (preview)

U kunt App Service, Functions en Logic Apps uitvoeren op een Kubernetes-cluster met Azure Arc. Het Kubernetes-cluster kan on-premises zijn of worden gehost in een cloud van derden. Met deze methode kunnen app-ontwikkelaars profiteren van de functies van App Service. Tegelijkertijd kunnen it-beheerders bedrijfscompatibiliteit handhaven door de App Service-apps op interne infrastructuur te hosten. Ook kunnen andere IT-operators hun eerdere investeringen in andere cloudproviders beschermen door App Service uit te voeren op bestaande Kubernetes-clusters.

Notitie

Zie Een App Service Kubernetes-omgeving (preview) maken voor meer informatie over het instellen van uw Kubernetes-cluster voor App Service, Functions en Logic Apps.

In de meeste gevallen moeten app-ontwikkelaars niets meer weten dan hoe ze moeten implementeren in de juiste Azure-regio die de geïmplementeerde Kubernetes-omgeving vertegenwoordigt. Voor operators die de omgeving bieden en de onderliggende Kubernetes-infrastructuur onderhouden, moet u rekening houden met de volgende Azure-resources:

Beperkingen van openbare preview

De volgende beperkingen voor openbare preview zijn van toepassing op App Service Kubernetes-omgevingen. Deze lijst met beperkingen wordt bijgewerkt wanneer wijzigingen en functies beschikbaar worden gesteld.

Beperking Details
Ondersteunde Azure-regio's VS - oost, Europa - west
Clusternetwerkvereiste Het servicetype moet worden ondersteund LoadBalancer
Vereiste voor clusteropslag Er moet een cluster gekoppelde opslagklasse beschikbaar zijn voor gebruik door de extensie om implementatie en build van op code gebaseerde apps te ondersteunen, indien van toepassing
Functie: Netwerken Niet beschikbaar (afhankelijk van clusternetwerken)
Functie: Beheerde identiteiten Niet beschikbaar
Functie: Sleutelkluisverwijzingen Niet beschikbaar (afhankelijk van beheerde identiteiten)
Functie: Afbeeldingen ophalen uit ACR met beheerde identiteit Niet beschikbaar (afhankelijk van beheerde identiteiten)
Functie: In-portal bewerken voor Functions en Logic Apps Niet beschikbaar
Functie: Portal-lijst met functies of sleutels Niet beschikbaar als het cluster niet openbaar bereikbaar is
Functie: FTP-publicatie Niet beschikbaar
Logboeken Log Analytics moet worden geconfigureerd met de clusterextensie; niet per site

Pods die zijn gemaakt door de App Service-extensie

Wanneer de App Service-extensie is geïnstalleerd op het Kubernetes-cluster met Azure Arc, worden er verschillende pods gemaakt in de releasenaamruimte die is opgegeven. Met deze pods kan uw Kubernetes-cluster een uitbreiding zijn van de Microsoft.Web resourceprovider in Azure en het beheer en de werking van uw apps ondersteunen. U kunt er desgewenst voor kiezen om keda voor gebeurtenisgestuurd schalen te installeren met de extensie.

In de volgende tabel wordt de rol beschreven van elke pod die standaard wordt gemaakt:

Pod Beschrijving
<extensionName>-k8se-app-controller De kernoperatorpod die resources in het cluster maakt en de status van onderdelen onderhoudt.
<extensionName>-k8se-envoy Een front-endproxylaag voor alle aanvragen op het gegevensvlak. Hiermee wordt het binnenkomende verkeer naar de juiste apps gerouteerd.
<extensionName>-k8se-activator Een alternatieve routeringsbestemming om te helpen bij apps die zijn geschaald naar nul terwijl het systeem het eerste exemplaar beschikbaar krijgt.
<extensionName>-k8se-build-service Ondersteunt implementatiebewerkingen en dient voor de functie Geavanceerde hulpprogramma's.
<extensionName>-k8se-http-scaler Bewaakt het binnenkomende aanvraagvolume om schaalgegevens naar KEDA te verstrekken.
<extensionName>-k8se-img-cacher Haalt tijdelijke aanduidingen en app-installatiekopieën op in een lokale cache op het knooppunt.
<extensionName>-k8se-log-processor Verzamelt logboeken van apps en andere onderdelen en verzendt deze naar Log Analytics.
placeholder-azure-functions-* Wordt gebruikt om koude start voor Azure Functions te versnellen.

App Service Kubernetes-omgeving

De App Service Kubernetes-omgevingsresource is vereist voordat apps kunnen worden gemaakt. Hiermee wordt configuratie mogelijk die gebruikelijk is voor apps op de aangepaste locatie, zoals het standaard-DNS-achtervoegsel.

Er kan slechts één Kubernetes-omgevingsresource worden gemaakt op een aangepaste locatie. In de meeste gevallen hoeft een ontwikkelaar die apps maakt en implementeert, niet direct op de hoogte te zijn van de resource. Deze kan rechtstreeks worden afgeleid van de opgegeven aangepaste locatie-id. Bij het definiëren van Azure Resource Manager-sjablonen moet elke planresource echter rechtstreeks verwijzen naar de resource-id van de omgeving. De aangepaste locatiewaarden van het plan en de opgegeven omgeving moeten overeenkomen.

Veelgestelde vragen over App Service, Functions en Logic Apps in Azure Arc (preview)

Hoeveel kost het?

App Service in Azure Arc is gratis tijdens de openbare preview.

Worden zowel Windows- als Linux-apps ondersteund?

Alleen op Linux gebaseerde apps worden ondersteund, zowel code als aangepaste containers. Windows-apps worden niet ondersteund.

Welke ingebouwde toepassingsstacks worden ondersteund?

Alle ingebouwde Linux-stacks worden ondersteund.

Worden alle typen app-implementatie ondersteund?

FTP-implementatie wordt niet ondersteund. Momenteel az webapp up wordt ook niet ondersteund. Andere implementatiemethoden worden ondersteund, waaronder Git, ZIP, CI/CD, Visual Studio en Visual Studio Code.

Welke App Service-functies worden ondersteund?

Tijdens de preview-periode worden bepaalde App Service-functies gevalideerd. Wanneer ze worden ondersteund, worden de linkernavigatieopties in Azure Portal geactiveerd. Functies die nog niet worden ondersteund, blijven grijs weergegeven.

Worden alle netwerkfuncties ondersteund?

Nee Netwerkfuncties zoals hybride verbindingen of virtual network-integratie worden niet ondersteund. Ondersteuning voor toegangsbeperkingen is toegevoegd in april 2022. Netwerken moeten rechtstreeks worden verwerkt in de netwerkregels in het Kubernetes-cluster zelf.

Worden beheerde identiteiten ondersteund?

Nee Apps kunnen geen beheerde identiteiten worden toegewezen wanneer ze worden uitgevoerd in Azure Arc. Als uw app een identiteit nodig heeft voor het werken met een andere Azure-resource, kunt u in plaats daarvan een service-principal voor toepassingen gebruiken.

Zijn er schaallimieten?

Alle toepassingen die zijn geïmplementeerd met Azure-app Service in Kubernetes met Azure Arc, kunnen worden geschaald binnen de grenzen van het onderliggende Kubernetes-cluster. Als het onderliggende Kubernetes-cluster onvoldoende beschikbare rekenresources (voornamelijk CPU en geheugen) heeft, kunnen toepassingen alleen schalen naar het aantal exemplaren van de toepassing dat Kubernetes kan plannen met de beschikbare resource.

Welke logboeken worden verzameld?

Logboeken voor zowel systeemonderdelen als uw toepassingen worden naar standaarduitvoer geschreven. Beide logboektypen kunnen worden verzameld voor analyse met behulp van standaardhulpprogramma's van Kubernetes. U kunt ook de App Service-clusterextensie configureren met een Log Analytics-werkruimte en alle logboeken naar die werkruimte verzenden.

Logboeken van systeemonderdelen worden standaard naar het Azure-team verzonden. Toepassingslogboeken worden niet verzonden. U kunt voorkomen dat deze logboeken worden overgebracht door logProcessor.enabled=false in te stellen als een configuratie-instelling voor de extensie. Met deze configuratie-instelling wordt ook het doorsturen van de toepassing naar uw Log Analytics-werkruimte uitgeschakeld. Het uitschakelen van de logboekprocessor kan invloed hebben op de tijd die nodig is voor ondersteuningsaanvragen en u wordt gevraagd om logboeken van standaarduitvoer te verzamelen via een andere manier.

Wat moet ik doen als ik een fout bij de registratie van een provider zie?

Bij het maken van een Kubernetes-omgevingsresource zien sommige abonnementen mogelijk de fout 'Er is geen geregistreerde resourceprovider gevonden'. De foutdetails kunnen een set locaties en API-versies bevatten die als geldig worden beschouwd. Als dit foutbericht wordt geretourneerd, moet het abonnement opnieuw worden geregistreerd bij de Microsoft.Web-provider, een bewerking die geen invloed heeft op bestaande toepassingen of API's. Als u zich opnieuw wilt registreren, gebruikt u de Azure CLI om uit te voeren az provider register --namespace Microsoft.Web --wait. Wijzig vervolgens de Kubernetes-omgevingsopdracht.

Kan ik de application services-extensie implementeren op een ARM64-cluster?

Op dit moment worden op ARM64 gebaseerde clusters niet ondersteund.

Op welke Kubernetes-distributies kan ik de extensie implementeren?

De extensie is gevalideerd op AKS, AKS in Azure Stack HCI, Google Kubernetes Engine, Amazon Elastic Kubernetes Service en Kubernetes Cluster-API.

Opmerkingen bij de release van de extensie

Application Services-extensie v 0.9.0 (mei 2021)

  • Initiële openbare preview-versie van application services-extensie.
  • Ondersteuning voor code- en containerimplementaties van web-, functie- en logische toepassingen.
  • Web Application Runtime ondersteunt --- .NET 3.1 en 5.0; Knooppunt JS 12 en 14; Python 3.6, 3.7 en 3.8; PHP 7.3 en 7.4; Ruby 2.5, 2.5.5, 2.6 en 2.6.2; Java SE 8u232, 8u242, 8u252, 11.05, 11.06 en 11.07; Tomcat 8.5, 8.5.41, 8.5.53, 8.5.57, 9.0, 9.0.20, 9.0.33 en 9.0.37.

Application Services-extensie v 0.10.0 (november 2021)

  • Vereiste verwijderd voor vooraf toegewezen statisch IP-adres dat is vereist voor toewijzing aan het Envoy-eindpunt
  • Keda upgraden naar v2.4.0
  • Envoy upgraden naar v1.19.0
  • Azure Function-runtime upgraden naar v3.3.1
  • Standaardaantal replica's van App Controller en Envoy Controller instellen op 2 om verdere stabiliteit toe te voegen

Als uw extensie zich in de stabiele versie bevindt en de secundaire versie automatisch wordt bijgewerkt op true, worden de uitbreidingsupgrades automatisch bijgewerkt. Als u de extensie handmatig wilt upgraden naar de nieuwste versie, kunt u de opdracht uitvoeren:

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

Application Services-extensie v 0.11.0 (december 2021)

  • Application Insights-ondersteuning toegevoegd voor Java- en .NET-webtoepassingen
  • Ondersteuning toegevoegd voor .NET 6.0-webtoepassingen
  • .NET Core 2.0 verwijderd
  • Problemen opgelost waardoor sitewisselingsbewerkingen mislukken
  • Problemen opgelost die klanten ondervinden tijdens het maken van Ruby-webtoepassingen

Als uw extensie zich in de stabiele versie bevindt en de secundaire versie automatisch wordt bijgewerkt op true, worden de uitbreidingsupgrades automatisch bijgewerkt. Als u de extensie handmatig wilt upgraden naar de nieuwste versie, kunt u de opdracht uitvoeren:

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

Application Services-extensie v 0.11.1 (december 2021)

  • Secundaire release om het probleem met CRD-update op te lossen

Als uw extensie zich in de stabiele versie bevindt en de secundaire versie automatisch wordt bijgewerkt op true, worden de uitbreidingsupgrades automatisch bijgewerkt. Als u de extensie handmatig wilt upgraden naar de nieuwste versie, kunt u de opdracht uitvoeren:

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

Application Services-extensie v 0.12.0 (januari 2022)

  • Ondersteuning voor uitgaande proxy
  • Ondersteuning voor parallelle builds in buildservice
  • Envoy upgraden naar 1.20.1
  • Probleem opgelost met Application Insights-ondersteuning voor .NET-toepassingen

Als uw extensie zich in de stabiele versie bevindt en de secundaire versie automatisch wordt bijgewerkt op true, worden de uitbreidingsupgrades automatisch bijgewerkt. Als u de extensie handmatig wilt upgraden naar de nieuwste versie, kunt u de opdracht uitvoeren:

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

Application Services-extensie v 0.12.1 (maart 2022)

  • Probleem opgelost met uitgaande proxyondersteuning om logboekregistratie naar Log Analytics-werkruimte in te schakelen

Als uw extensie zich in de stabiele versie bevindt en de secundaire versie automatisch wordt bijgewerkt op true, worden de uitbreidingsupgrades automatisch bijgewerkt. Als u de extensie handmatig wilt upgraden naar de nieuwste versie, kunt u de opdracht uitvoeren:

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

Application Services-extensie v 0.12.2 (maart 2022)

  • Bijwerken om upgradefouten op te lossen bij het upgraden van v 0.12.0 wanneer de lengte van de extensienaam langer is dan 35 tekens

Als uw extensie zich in de stabiele versie bevindt en de secundaire versie automatisch wordt bijgewerkt op true, worden de uitbreidingsupgrades automatisch bijgewerkt. Als u de extensie handmatig wilt upgraden naar de nieuwste versie, kunt u de opdracht uitvoeren:

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

Application Services-extensie v 0.13.0 (april 2022)

  • Ondersteuning toegevoegd voor integratie zonder code van Application Insights voor Node JS-toepassingen
  • Ondersteuning toegevoegd voor toegangsbeperkingen via CLI
  • Meer informatie die wordt opgegeven wanneer de extensie niet kan worden geïnstalleerd, om te helpen bij het oplossen van problemen

Als uw extensie zich in de stabiele versie bevindt en de secundaire versie automatisch wordt bijgewerkt op true, worden de uitbreidingsupgrades automatisch bijgewerkt. Als u de extensie handmatig wilt upgraden naar de nieuwste versie, kunt u de opdracht uitvoeren:

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

Application Services-extensie v 0.13.1 (april 2022)

  • Bijwerken om upgradefouten op te lossen die worden gezien tijdens automatische upgrade van clusters naar v 0.13.0

Als uw extensie zich in de stabiele versie bevindt en de secundaire versie automatisch wordt bijgewerkt op true, worden de uitbreidingsupgrades automatisch bijgewerkt. Als u de extensie handmatig wilt upgraden naar de nieuwste versie, kunt u de opdracht uitvoeren:

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

Application Services-extensie v 0.13.5 (december 2023)

  • Update voor ondersteuning van Kubernetes versie 1.26 en hoger
  • Envoy bijwerken naar 1.2.1
  • Keda bijwerken naar v2.10.0
  • EasyAuth bijwerken naar v1.6.20
  • Basisinstallatiekopieën voor ondersteunde talen bijwerken

Als uw extensie zich in de stabiele versie bevindt en de secundaire versie automatisch wordt bijgewerkt op true, worden de uitbreidingsupgrades automatisch bijgewerkt. Als u de extensie handmatig wilt upgraden naar de nieuwste versie, kunt u de opdracht uitvoeren:

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

Volgende stappen

Een App Service Kubernetes-omgeving maken (preview)