Nätverk i Azure Container Apps-miljön

Azure Container Apps körs i kontexten för en miljö med ett eget virtuellt nätverk (VNet).

Som standard skapas containerappmiljön med ett virtuellt nätverk som genereras automatiskt åt dig. För detaljerad kontroll över nätverket kan du tillhandahålla ett befintligt virtuellt nätverk när du skapar en miljö. När du har skapat en miljö med antingen ett genererat eller befintligt virtuellt nätverk kan nätverkstypen inte ändras.

Genererade virtuella nätverk har följande egenskaper.

Dessa är:

  • otillgängliga för dig när de skapas i Microsofts klientorganisation
  • offentligt tillgänglig via Internet
  • kan endast nå internettillgängliga slutpunkter

Dessutom stöder de bara en begränsad delmängd av nätverksfunktioner som ingress-IP-begränsningar och inkommande kontroller på containerappsnivå.

Använd ett befintligt virtuellt nätverk om du behöver fler Azure-nätverksfunktioner, till exempel:

  • Integrering med Application Gateway
  • Nätverkssäkerhetsgrupper
  • Kommunikation med resurser bakom privata slutpunkter i ditt virtuella nätverk

Vilka VNet-funktioner som är tillgängliga beror på ditt miljöval.

Miljöval

Container Apps har två olika miljötyper som delar många av samma nätverksegenskaper med några viktiga skillnader.

Miljötyp beskrivning Plantyper som stöds
Arbetsbelastningsprofiler Stöder användardefinierade vägar (UDR) och utgående via NAT Gateway. Den minsta nödvändiga undernätsstorleken är /27. Förbrukning, dedikerad
Endast förbrukning Stöder inte användardefinierade vägar (UDR), utgående via NAT Gateway, peering via en fjärrgateway eller annan anpassad utgående trafik. Den minsta nödvändiga undernätsstorleken är /23. Förbrukning

Hjälpmedelsnivåer

Du kan konfigurera om din containerapp endast tillåter offentlig ingress eller ingress från ditt virtuella nätverk på miljönivå.

Hjälpmedelsnivå beskrivning
Externt Tillåter att containerappen accepterar offentliga begäranden. Externa miljöer distribueras med en virtuell IP-adress på en extern, offentlig IP-adress.
Intern Interna miljöer har inga offentliga slutpunkter och distribueras med en virtuell IP-adress (VIP) mappad till en intern IP-adress. Den interna slutpunkten är en intern Azure-lastbalanserare (ILB) och IP-adresser utfärdas från det anpassade virtuella nätverkets lista över privata IP-adresser.

Anpassad VNet-konfiguration

När du skapar ett anpassat virtuellt nätverk bör du tänka på följande situationer:

  • Om du vill att containerappen ska begränsa all extern åtkomst skapar du en intern Container Apps-miljö.

  • Om du använder ditt eget virtuella nätverk måste du ange ett undernät som uteslutande är dedikerat till containerappmiljön som du distribuerar. Det här undernätet är inte tillgängligt för andra tjänster.

  • Nätverksadresser tilldelas från ett undernätsintervall som du definierar när miljön skapas.

    • Du kan definiera det undernätsintervall som används av Container Apps-miljön.

    • Du kan begränsa inkommande begäranden till miljön exklusivt till det virtuella nätverket genom att distribuera miljön som intern.

Kommentar

När du anger ett eget virtuellt nätverk skapas ytterligare hanterade resurser . Dessa resurser medför kostnader till sina associerade priser.

När du börjar utforma nätverket runt containerappen läser du Planera virtuella nätverk.

Diagram of how Azure Container Apps environments use an existing V NET, or you can provide your own.

Kommentar

Det är inte tillåtet att flytta virtuella nätverk mellan olika resursgrupper eller prenumerationer om det virtuella nätverket används av en Container Apps-miljö.

HTTP Edge-proxybeteende

Azure Container Apps använder Envoy-proxyn som en EDGE HTTP-proxy. Transport Layer Security (TLS) avslutas på gränsen och begäranden dirigeras baserat på deras regler för trafikdelning och dirigerar trafik till rätt program.

HTTP-program skalas baserat på antalet HTTP-begäranden och anslutningar. Envoy dirigerar intern trafik i kluster.

Nedströmsanslutningar stöder HTTP1.1 och HTTP2 och Envoy identifierar och uppgraderar automatiskt anslutningar om klientanslutningen kräver en uppgradering.

Uppströmsanslutningar definieras genom att egenskapen anges transport för ingressobjektet .

Ingresskonfiguration

Under ingressavsnittet kan du konfigurera följande inställningar:

  • Tillgänglighetsnivå: Du kan ange containerappen som externt eller internt tillgänglig i miljön. En miljövariabel CONTAINER_APP_ENV_DNS_SUFFIX används för att automatiskt matcha det fullständigt kvalificerade domännamnssuffixet (FQDN) för din miljö. När du kommunicerar mellan containerappar i samma miljö kan du också använda appnamnet. Mer information om hur du kommer åt dina appar finns i Ingress i Azure Container Apps.

  • Regler för trafikdelning: Du kan definiera regler för trafikdelning mellan olika revisioner av ditt program. Mer information finns i Trafikdelning.

Mer information om olika nätverksscenarier finns i Inkommande i Azure Container Apps.

Portalberoenden

För varje app i Azure Container Apps finns det två URL:er.

Container Apps-körningen genererar ursprungligen ett fullständigt domännamn (FQDN) som används för att komma åt din app. Se program-URL:en i fönstret Översikt för din containerapp i Azure-portalen för det fullständiga domännamnet för din containerapp.

En andra URL genereras också åt dig. Den här platsen ger åtkomst till loggströmningstjänsten och konsolen. Om det behövs kan du behöva lägga https://azurecontainerapps.dev/ till i listan över tillåtna brandväggar eller proxyservrar.

Portar och IP-adresser

Följande portar exponeras för inkommande anslutningar.

Protokoll Port(ar)
HTTP/HTTPS 80, 443

IP-adresser är uppdelade i följande typer:

Typ Beskrivning
Offentlig inkommande IP-adress Används för programtrafik i en extern distribution och hanteringstrafik i både interna och externa distributioner.
Utgående offentlig IP-adress Används som "från"-IP för utgående anslutningar som lämnar det virtuella nätverket. De här anslutningarna dirigeras inte ned från ett VPN. Utgående IP-adresser kan ändras med tiden. Användning av en NAT-gateway eller annan proxy för utgående trafik från en Container Apps-miljö stöds endast i en miljö för arbetsbelastningsprofiler.
Ip-adress för intern lastbalanserare Den här adressen finns bara i en intern miljö.

Undernät

Integrering av virtuella nätverk är beroende av ett dedikerat undernät. Hur IP-adresser allokeras i ett undernät och vilka undernätsstorlekar som stöds beror på vilken plan du använder i Azure Container Apps.

Välj storleken på undernätet noggrant. Undernätsstorlekar kan inte ändras när du har skapat en Container Apps-miljö.

Olika miljötyper har olika undernätskrav:

  • /27 är den minsta undernätsstorlek som krävs för integrering av virtuella nätverk.

  • Undernätet måste delegeras till Microsoft.App/environments.

  • När du använder en extern miljö med extern ingress dirigerar inkommande trafik via infrastrukturens offentliga IP-adress i stället för via ditt undernät.

  • Container Apps reserverar automatiskt 12 IP-adresser för integrering med undernätet. Antalet IP-adresser som krävs för infrastrukturintegrering varierar inte beroende på miljöns skalningskrav. Ytterligare IP-adresser allokeras enligt följande regler beroende på vilken typ av arbetsbelastningsprofil du använder, fler IP-adresser allokeras beroende på miljöns arbetsbelastningsprofil:

    • Profil för dedikerad arbetsbelastning: När containerappen skalas ut har varje nod en tilldelad IP-adress.

    • Förbrukningsarbetsbelastningsprofil: Varje IP-adress kan delas mellan flera repliker. När du planerar för hur många IP-adresser som krävs för din app planerar du för 1 IP-adress per 10 repliker.

  • När du gör en ändring i en revision i ett enda revisionsläge fördubblas det nödvändiga adressutrymmet under en kort tidsperiod för att stödja distributioner utan driftstopp. Detta påverkar de verkliga, tillgängliga repliker eller noder som stöds för en viss undernätsstorlek. I följande tabell visas både de maximala tillgängliga adresserna per CIDR-block och effekten på vågrät skala.

    Storlek på undernät Tillgängliga IP-adresser1 Maximalt antal noder (dedikerad arbetsbelastningsprofil)2 Maximalt antal repliker (förbrukningsarbetsbelastningsprofil)2
    /23 500 250 2 500
    /24 244 122 1,220
    /25 116 58 580
    /26 52 26 260
    /27 20 10 100

    1 De tillgängliga IP-adresserna är storleken på undernätet minus de 12 IP-adresser som krävs för Azure Container Apps-infrastrukturen.
    2 Detta är redovisning för appar i enkel revisionsläge.

Begränsningar för undernätsadressintervall

Adressintervall för undernät kan inte överlappa följande intervall som reserverats av Azure Kubernetes Services:

  • 169.254.0.0/16
  • 172.30.0.0/16
  • 172.31.0.0/16
  • 192.0.2.0/24

Dessutom reserverar en miljö för arbetsbelastningsprofiler följande adresser:

  • 100.100.0.0/17
  • 100.100.128.0/19
  • 100.100.160.0/19
  • 100.100.192.0/19

Konfiguration av undernät med CLI

När en Container Apps-miljö skapas anger du resurs-ID:t för ett enda undernät.

Om du använder CLI är infrastructure-subnet-resource-idparametern för att definiera undernätets resurs-ID . Undernätet är värd för infrastrukturkomponenter och containrar för användarappar.

Om du använder Azure CLI med en förbrukningsmiljö och platformReservedCidr-intervallet har definierats får båda undernäten inte överlappa med IP-intervallet som definieras i platformReservedCidr.

Vägar

Användardefinierade vägar (UDR)

Användardefinierade vägar (UDR) och kontrollerad utgående trafik via NAT Gateway stöds i miljön för arbetsbelastningsprofiler. I miljön endast förbrukning stöds inte dessa funktioner.

Kommentar

När du använder UDR med Azure Firewall i Azure Container Apps måste du lägga till vissa FQDN- och tjänsttaggar i listan över tillåtna för brandväggen. Mer information finns i konfigurera UDR med Azure Firewall.

  • Du kan använda UDR med arbetsbelastningsprofiler för att begränsa utgående trafik från containerappen via Azure Firewall eller via andra nätverksinstallationer.

  • UDR konfigureras utanför Container Apps miljöomfång.

Diagram of how UDR is implemented for Container Apps.

Azure skapar en standardvägtabell för dina virtuella nätverk när du skapar den. Genom att implementera en användardefinierad routningstabell kan du styra hur trafiken dirigeras i det virtuella nätverket. Du kan till exempel skapa en UDR som dirigerar all trafik till brandväggen.

Konfigurera UDR med Azure Firewall

Användardefinierade vägar stöds endast i en miljö för arbetsbelastningsprofiler. Följande program- och nätverksregler måste läggas till i listan över tillåtna för brandväggen beroende på vilka resurser du använder.

Kommentar

En guide om hur du konfigurerar UDR med Container Apps för att begränsa utgående trafik med Azure Firewall finns i avsnittet om hur du gör för Container Apps och Azure Firewall.

Programregler

Programregler tillåter eller nekar trafik baserat på programskiktet. Följande regler för utgående brandväggsprogram krävs baserat på scenario.

Scenarier Fqdn beskrivning
Alla scenarier mcr.microsoft.com, *.data.mcr.microsoft.com Dessa FQDN:er för Microsoft Container Registry (MCR) används av Azure Container Apps och antingen måste dessa programregler eller nätverksreglerna för MCR läggas till i listan över tillåtna när du använder Azure Container Apps med Azure Firewall.
Azure Container Registry (ACR) Your-ACR-address, *.blob.core.windows.net, login.microsoft.com Dessa FQDN krävs när du använder Azure Container Apps med ACR och Azure Firewall.
Azure Key Vault Din-Azure-Key-Vault-adress, login.microsoft.com Dessa FQDN krävs utöver tjänsttaggen som krävs för nätverksregeln för Azure Key Vault.
Hanterad identitet *.identity.azure.net, login.microsoftonline.com, , *.login.microsoftonline.com*.login.microsoft.com Dessa FQDN krävs när du använder hanterad identitet med Azure Firewall i Azure Container Apps.
Docker Hub Registry hub.docker.com, , registry-1.docker.ioproduction.cloudflare.docker.com Om du använder Docker Hub-registret och vill komma åt det via brandväggen måste du lägga till dessa FQDN i brandväggen.
Nätverksregler

Nätverksregler tillåter eller nekar trafik baserat på nätverks- och transportskiktet. Följande regler för utgående brandväggsnätverk krävs baserat på scenario.

Scenarier Service Tag beskrivning
Alla scenarier MicrosoftContainerRegistry, AzureFrontDoorFirstParty Dessa tjänsttaggar för Microsoft Container Registry (MCR) används av Azure Container Apps och antingen måste dessa nätverksregler eller programreglerna för MCR läggas till i listan över tillåtna när du använder Azure Container Apps med Azure Firewall.
Azure Container Registry (ACR) AzureContainerRegistry, AzureActiveDirectory När du använder ACR med Azure Container Apps måste du konfigurera de här programreglerna som används av Azure Container Registry.
Azure Key Vault AzureKeyVault, AzureActiveDirectory Dessa tjänsttaggar krävs utöver det fullständiga domännamnet för programregeln för Azure Key Vault.
Hanterad identitet AzureActiveDirectory När du använder Hanterad identitet med Azure Container Apps måste du konfigurera de här programreglerna som används av Hanterad identitet.

Kommentar

För Azure-resurser som du använder med Azure Firewall som inte finns med i den här artikeln kan du läsa dokumentationen om tjänsttaggar.

NAT-gatewayintegrering

Du kan använda NAT Gateway för att förenkla utgående anslutning för din utgående Internettrafik i ditt virtuella nätverk i en miljö för arbetsbelastningsprofiler.

När du konfigurerar en NAT-gateway i undernätet tillhandahåller NAT Gateway en statisk offentlig IP-adress för din miljö. All utgående trafik från containerappen dirigeras via NAT Gateways statiska offentliga IP-adress.

Miljösäkerhet

Diagram of how to fully lock down your network for Container Apps.

Du kan skydda arbetsbelastningsprofilerna för inkommande och utgående nätverkstrafik helt genom att vidta följande åtgärder:

Nätverkskryptering på miljönivå (förhandsversion)

Azure Container Apps stöder nätverkskryptering på miljönivå med hjälp av ömsesidig säkerhet på transportnivå (mTLS). När kryptering från slutpunkt till slutpunkt krävs krypterar mTLS data som överförs mellan program i en miljö.

Program i en Container Apps-miljö autentiseras automatiskt. Container Apps-körningen stöder dock inte auktorisering för åtkomstkontroll mellan program med hjälp av den inbyggda mTLS.

När dina appar kommunicerar med en klient utanför miljön stöds dubbelriktad autentisering med mTLS. Mer information finns i konfigurera klientcertifikat.

Kommentar

Om du aktiverar mTLS för dina program kan svarsfördröjningen öka och minska det maximala dataflödet i scenarier med hög belastning.

Du kan aktivera mTLS med hjälp av följande kommandon.

Vid skapande:

az containerapp env create \
    --name <environment-name> \
    --resource-group <resource-group> \
    --location <location> \
    --enable-mtls

För en befintlig containerapp:

az containerapp env update \
    --name <environment-name> \
    --resource-group <resource-group> \
    --enable-mtls

DNS

  • Anpassad DNS: Om ditt virtuella nätverk använder en anpassad DNS-server i stället för standard-DNS-servern som tillhandahålls av Azure konfigurerar du DNS-servern för att vidarebefordra olösta DNS-frågor till 168.63.129.16. Rekursiva Matchare i Azure använder den här IP-adressen för att lösa begäranden. När du konfigurerar din NSG eller brandvägg ska du inte blockera 168.63.129.16 adressen, annars fungerar inte Container Apps-miljön korrekt.

  • Inkommande VNet-omfång: Om du planerar att använda inkommande VNet-omfång i en intern miljö konfigurerar du dina domäner på något av följande sätt:

    1. Icke-anpassade domäner: Om du inte planerar att använda en anpassad domän skapar du en privat DNS-zon som löser Container Apps-miljöns standarddomän till den statiska IP-adressen för Container Apps-miljön. Du kan använda Azure Privat DNS eller din egen DNS-server. Om du använder Azure Privat DNS skapar du en privat DNS-zon med namnet containerappmiljöns standarddomän (<UNIQUE_IDENTIFIER>.<REGION_NAME>.azurecontainerapps.io) med en A post. Posten A innehåller namnet *<DNS Suffix> och den statiska IP-adressen för Container Apps-miljön.

    2. Anpassade domäner: Om du planerar att använda anpassade domäner och använder en extern Container Apps-miljö använder du en offentligt matchbar domän för att lägga till en anpassad domän och ett certifikat i containerappen. Om du använder en intern Container Apps-miljö finns det ingen verifiering för DNS-bindningen eftersom klustret bara kan nås inifrån det virtuella nätverket. Skapa också en privat DNS-zon som löser apex-domänen till den statiska IP-adressen för Container Apps-miljön. Du kan använda Azure Privat DNS eller din egen DNS-server. Om du använder Azure Privat DNS skapar du en Privat DNS zon med namnet apex-domänen, med en A post som pekar på den statiska IP-adressen för Container Apps-miljön.

Den statiska IP-adressen för Container Apps-miljön är tillgänglig i Azure-portalen i anpassat DNS-suffix på sidan för containerappen eller med hjälp av Azure CLI-kommandot az containerapp env list .

Hanterade resurser

När du distribuerar en intern eller extern miljö till ditt eget nätverk skapas en ny resursgrupp i Azure-prenumerationen där din miljö finns. Den här resursgruppen innehåller infrastrukturkomponenter som hanteras av Azure Container Apps-plattformen. Ändra inte tjänsterna i den här gruppen eller själva resursgruppen.

Miljö för arbetsbelastningsprofiler

Namnet på resursgruppen som skapades i Azure-prenumerationen där din miljö finns är prefixet med ME_ som standard, och resursgruppens namn kan anpassas när du skapar din containerappmiljö.

För externa miljöer innehåller resursgruppen en offentlig IP-adress som används specifikt för inkommande anslutning till din externa miljö och en lastbalanserare. För interna miljöer innehåller resursgruppen bara en lastbalanserare.

Utöver standardfakturering för Azure Container Apps debiteras du för:

  • En standard statisk offentlig IP-adress för utgående trafik om du använder en intern eller extern miljö, plus en statisk offentlig IP-standard för ingress om du använder en extern miljö. Om du behöver fler offentliga IP-adresser för utgående trafik på grund av SNAT-problem öppnar du ett supportärende för att begära en åsidosättning.

  • En standardlastbalanserare.

  • Kostnaden för data som bearbetas (i GB) omfattar både ingress och utgående för hanteringsåtgärder.

Endast förbrukningsmiljö

Namnet på resursgruppen som skapades i Azure-prenumerationen där din miljö finns är prefixet med MC_ som standard och resursgruppens namn kan inte anpassas när du skapar en containerapp. Resursgruppen innehåller offentliga IP-adresser som används specifikt för utgående anslutning från din miljö och en lastbalanserare.

Utöver standardfakturering för Azure Container Apps debiteras du för:

Nästa steg