Azure Container Apps in Azure Arc

Azure Container Apps op Azure Arc-enabled Kubernetes laat je Container Apps-workloads uitvoeren op ondersteunde Kubernetes-infrastructuur buiten Azure-datacenters, inclusief AKS op Azure Lokaal. Je beheert de applicaties als Azure-bronnen terwijl de applicatiecontainers en het Container Apps dataplan op je Kubernetes-cluster draaien.

Het draaien van Container Apps op Azure Arc kan je helpen:

  • Draai applicaties dicht bij gebruikers, apparaten of on-premises databronnen om de latentie te verminderen.
  • Houd de verwerking van aanvragen op een locatie die voldoet aan de gegevensresidentie-, soevereiniteits- of compliancevereisten van uw organisatie.
  • Geef applicatieteams een Container Apps-applicatiemodel, terwijl infrastructuurteams de controle behouden over de Kubernetes-cluster, netwerk, opslag, capaciteit en levenscyclus.
  • Beheer applicaties op ondersteunde locaties via Azure Resource Manager, Azure CLI en het Azure-portaal.
  • Gebruik ondersteunde Container Apps-mogelijkheden zoals revisies, ingress, autoscaling, Dapr, jobs, metrics, logstreaming, aangepaste domeinen en toegang tot de applicatieconsole.

Container Apps op Azure Arc is geen gehoste compute-service. Uw organisatie levert, beveiligt, schaalt, patcht en exploiteert het onderliggende Kubernetes-cluster en de bijbehorende reken-, netwerk- en opslagbronnen.

Om een cluster voor te bereiden en je eerste toepassing te implementeren, voltooi Een Kubernetes-cluster met Azure Arc instellen om Azure Container Apps op uit te voeren en voltooi vervolgens Een container-app maken op Azure Arc.

Terwijl je je cluster configureert, maak of gebruik je deze resources:

  • Verbonden cluster: De Azure Resource Manager-representatie van je Kubernetes-cluster. Azure Arc-agenten die in de cluster draaien, onderhouden de verbinding met Azure. Zie Wat is Kubernetes met Azure Arc?voor meer informatie.

  • Container Apps clusterextensie: Software geïnstalleerd in de cluster die de Container Apps controllers, ingress, scaling, Dapr, logging en andere dataplane-componenten levert. De extensie is een kindresource van de verbonden cluster.

  • Aangepaste locatie: Een Azure-locatieresource die het verbonden cluster, de Container Apps-extensie en de Kubernetes-naamruimte koppelt waar Container Apps-bronnen worden aangemaakt.

  • Container-apps verbonden omgeving: De applicatiegrens waarbinnen ontwikkelaars container-apps en -taken uitrolden. De verbonden omgeving verwijst naar de aangepaste locatie en bevat configuraties die gedeeld worden door zijn applicaties.

De afhankelijkheidsvolgorde is: verbonden cluster > clusterextensie > aangepaste locatie > verbonden omgeving > container-app of -taak. Als een eerdere resource ongezond is, kunnen resources later in de keten niet provisioneren.

Beperkingen

De volgende beperkingen gelden voor Azure Container Apps op Azure Arc-enabled Kubernetes.

Beperking Bijzonderheden
Ondersteunde Azure-regio's Australië Oost, Oost-Azië, Oost-VS, Noord-Centraal VS, Zuidoost-Azië, Zweden Centraal, VK Zuid, West-Europa, West-VS
Clusternetwerkvereiste Moet ondersteuning bieden voor het servicetype LoadBalancer
Vereiste voor knooppuntbesturingssystemen Alleen Linux .
Functie: Beheerde identiteiten Niet beschikbaar
Functie: Afbeeldingen ophalen uit ACR met beheerde identiteit Niet beschikbaar (afhankelijk van beheerde identiteiten)
Functie: Azure Files SMB-driver (>= v1.18.0) moet worden geïnstalleerd voordat Azure Files SMB storage wordt gebruikt
Logboeken Log Analytics moet worden geconfigureerd met de clusterextensie; niet per toepassing

De volgende functies worden ondersteund:

  • Etiketten
  • Statistieken
  • Eenvoudige authenticatie
  • Logstroom
  • Flexibiliteit
  • Aangepaste domeinen
  • Taken voor Container Apps
  • Revisiebeheer
  • App-containerconsole

Belangrijk

Voordat je de extensie installeert op AKS op Azure Lokaal, configureer je HAProxy of een andere ondersteunde load balancer en configureer je aangepaste CoreDNS. Om CoreDNS voor AKS op Azure Lokaal te configureren, voer az containerapp arc setup-core-dns --distro AksAzureLocal uit. Voor commando-opties, zie az containerapp arc.

Resources die zijn gemaakt door de Container Apps-extensie

Wanneer de Container Apps-extensie is geïnstalleerd op het Kubernetes-cluster met Azure Arc, worden er verschillende resources gemaakt in de opgegeven releasenaamruimte. Met deze resources kan uw cluster een uitbreiding zijn van de Microsoft.App resourceprovider ter ondersteuning van het beheer en de werking van uw apps.

De extensie kan de KEDA-componenten installeren die worden gebruikt voor gebeurtenisgestuurde en HTTP-schaling. Er kan slechts één ondersteunde KEDA-installatie in de cluster draaien. Vóór de installatie voer je kubectl get deployment -A | grep -i keda uit om te controleren of er al een installatie bestaat. Als KEDA al bestaat, stop dan en bevestig de ondersteunde coëxistentieconfiguratie voordat je verder gaat. Verwijder de bestaande KEDA-installatie niet en pas geen ongedocumenteerde extensies toe, want andere workloads kunnen ervan afhankelijk zijn.

De volgende tabel beschrijft de rol van elke extensiecomponent die voor u is aangemaakt:

Peul Beschrijving Aantal gevallen CPU (Centrale Verwerkings Eenheid) Geheugen Typologie
<extensionName>-k8se-activator Wordt gebruikt als onderdeel van de schaalvergrotingspijplijn 2 100 millicpu-eenheden 500 MB ReplicaSet
<extensionName>-k8se-billing Factureringsgegevens genereren 3 100 millicpu-eenheden 100 MB ReplicaSet
<extensionName>-k8se-containerapp-controller De kernoperatorpod die resources in het cluster maakt en de status van onderdelen onderhoudt. 2 100 millicpu-eenheden 1 GB ReplicaSet
<extensionName>-k8se-envoy Een front-end proxylaag voor alle HTTP-aanvragen in het gegevensvlak. Hiermee wordt het binnenkomende verkeer naar de juiste apps gerouteerd. 3 1 kern 1536 MB ReplicaSet
<extensionName>-k8se-envoy-controller Operator, waarmee envoy-configuratie wordt gegenereerd 2 200 millicpu 500 MB ReplicaSet
<extensionName>-k8se-event-processor Een alternatieve routeringsbestemming om te helpen bij apps die zijn geschaald naar nul terwijl het systeem het eerste exemplaar beschikbaar krijgt. 2 100 millicpu-eenheden 500 MB ReplicaSet
<extensionName>-k8se-http-scaler Bewaakt het binnenkomende aanvraagvolume om schaalgegevens naar KEDA te verstrekken. 1 100 millicpu-eenheden 500 MB ReplicaSet
<extensionName>-k8se-keda-cosmosdb-scaler KEDA Cosmos DB Scaler 1 10 m 128 MB ReplicaSet
<extensionName>-k8se-keda-metrics-apiserver KEDA Metrics Server 1 1 kern 1000 MB ReplicaSet
<extensionName>-k8se-keda-operator Schaalt workloads in en uit van 0/1 naar N-exemplaren 1 100 millicpu-eenheden 500 MB ReplicaSet
<extensionName>-k8se-log-processor Verzamelt logboeken van apps en andere onderdelen en verzendt deze naar Log Analytics. 2 200 millicpu 500 MB DaemonSet
<extensionName>-k8se-mdm Agent voor metrische gegevens en logboeken 2 500 millicpu (eenheid gebruikt om computerrekenkracht te meten) 500 MB ReplicaSet
dapr-metrics Dapr statistiekenpod 1 100 millicpu-eenheden 500 MB ReplicaSet
dapr-operator Beheert onderdeelupdates en service-eindpunten voor Dapr 1 100 millicpu-eenheden 500 MB ReplicaSet
dapr-placement-server Wordt alleen voor actoren gebruikt: maakt toewijzingstabellen die actoren aan pods toewijzen. 1 100 millicpu-eenheden 500 MB StatefulSet
dapr-sentry Beheert mTLS tussen services en fungeert als CA 2 800 millicpu 200 MB ReplicaSet

Veelgestelde vragen over Azure Container Apps in Azure Arc

Welke Container Apps-functies worden ondersteund?

Voor de gedocumenteerde ondersteuningsstatus en vereisten van elke functie, zie Beperkingen. Het Azure-portaal schakelt ook controles uit die niet beschikbaar zijn in een verbonden omgeving. Ondersteuning kan afhangen van de geïnstalleerde extensieversie, dus controleer de uitbreidingsnotities voordat je een recent toegevoegde functie gebruikt.

Worden beheerde identiteiten ondersteund?

Nee. Je kunt geen beheerde identiteit toewijzen aan een container-app of -job in een verbonden omgeving. Beheerde identiteitsauthenticatie voor Azure Container Registry image pulls is ook niet beschikbaar.

Als een applicatie moet authenticeren bij een Azure-bron, gebruik dan een Microsoft Entra-applicatie en serviceprincipal:

  1. Maak of identificeer een applicatieregistratie.
  2. Geef de dienstprincipal alleen de Azure-rol die door de applicatie vereist is.
  3. Sla de credential op als een Container Apps geheim.
  4. Referer naar het geheim via omgevingsvariabelen in de applicatie.
  5. Stel een rotatieproces voor inloggegevens op.

Zie Toepassings- en service-principalobjecten in Microsoft Entra-id voor meer informatie. Vermijd het inbedden van inloggegevens in een image- of bronrepository.

Zijn er schaallimieten?

Container-apps en -taken kunnen alleen schalen binnen de toewijzingbare CPU, geheugen en gespecialiseerde bronnen die beschikbaar zijn in de onderliggende Kubernetes-cluster. Het instellen van een maximaal aantal replica's reserveert geen capaciteit.

Wanneer de cluster capaciteit mist, laat Kubernetes nieuwe replica's in wacht staan en haalt de applicatie het aantal gevraagde replica's niet. Controleer op deze aandoening met:

kubectl get pods -n <APPS_NAMESPACE>
kubectl describe pod <PENDING_POD_NAME> -n <APPS_NAMESPACE>
kubectl get events -n <APPS_NAMESPACE> --sort-by=.lastTimestamp

Plan de clustercapaciteit voor extensiecomponenten, piekreplica's van toepassingen, Kubernetes-systeemworkloads, doorlopende upgrades en node-uitval.

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 clusterextensie voor de toepassingsomgeving 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 het doorsturen van de toepassing naar uw Log Analytics-werkruimte uitgeschakeld. Het uitschakelen van de logboekprocessor kan van invloed zijn op de tijd die nodig is voor ondersteuningsaanvragen en u wordt gevraagd om logboeken van standaarduitvoer op een andere manier te verzamelen.

Hoe kan ik SMB-stuurprogramma installeren?

U kunt het SMB-stuurprogramma installeren met behulp van de volgende Helm-opdracht. Zie Stuurprogramma installeren in een Kubernetes-cluster voor aanvullende installatiemethoden.

helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.18.0

Kan de extensie worden geïnstalleerd op Windows-knooppunten?

Nee, de extensie kan niet worden geïnstalleerd op Windows-knooppunten. De extensie ondersteunt alleen installatie op Linux-knooppunten.

Kan ik de Container Apps-extensie uitrollen op een Arm64-gebaseerde cluster?

Nee. De extensie ondersteunt geen Arm64-gebaseerde clusters.