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.
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 containerappen i Azure Portal för FQDN för containerappen.
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 | Portar |
---|---|
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-id
parametern 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 undernätet inte överlappa med DET IP-intervall som definierats 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.
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.io production.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
Du kan skydda arbetsbelastningsprofilerna för inkommande och utgående nätverkstrafik helt genom att vidta följande åtgärder:
Skapa din interna containerappmiljö i en miljö för arbetsbelastningsprofiler. Anvisningar finns i Hantera arbetsbelastningsprofiler med Azure CLI.
Integrera dina Container Apps med en Application Gateway.
Konfigurera UDR för att dirigera all trafik via Azure Firewall.
Peer-to-peer-kryptering i Azure Container Apps-miljön
Azure Container Apps stöder peer-to-peer-TLS-kryptering i miljön. Om du aktiverar den här funktionen krypteras all nätverkstrafik i miljön med ett privat certifikat som är giltigt inom Azure Container Apps-miljöomfånget. Dessa certifikat hanteras automatiskt av Azure Container Apps.
Kommentar
Som standard inaktiveras peer-to-peer-kryptering. Om du aktiverar peer-to-peer-kryptering för dina program kan svarsfördröjningen öka och minska det maximala dataflödet i scenarier med hög belastning.
I följande exempel visas en miljö med peer-to-peer-kryptering aktiverat.
1 Inkommande TLS-trafik avslutas vid ingressproxyn på gränsen till miljön.
2 Trafik till och från ingressproxyn i miljön krypteras med ett privat certifikat och dekrypteras av mottagaren.
3 Anrop som görs från app A till app B:s FQDN skickas först till gränsens ingressproxy och är TLS-krypterade.
4 Samtal som görs från app A till app B med app B:s appnamn skickas direkt till app B och är TLS-krypterade.
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 peer-to-peer-krypteringen.
När dina appar kommunicerar med en klient utanför miljön stöds dubbelriktad autentisering med mTLS. Mer information finns i konfigurera klientcertifikat.
Du kan aktivera peer-to-peer-kryptering med hjälp av följande kommandon.
Vid skapande:
az containerapp env create \
--name <environment-name> \
--resource-group <resource-group> \
--location <location> \
--enable-peer-to-peer-encryption
För en befintlig containerapp:
az containerapp env update \
--name <environment-name> \
--resource-group <resource-group> \
--enable-peer-to-peer-encryption
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 blockera168.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:
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 enA
post. PostenA
innehåller namnet*<DNS Suffix>
och den statiska IP-adressen för Container Apps-miljön.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 Portal i anpassat DNS-suffix på sidan för containerappen eller med hjälp av Azure CLI-kommandotaz 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.
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:
En standardmässig statisk offentlig IP-adress för utgående trafik. Om du behöver fler IP-adresser för utgående trafik på grund av problem med källnätverksadressöversättning (SNAT) öppnar du ett supportärende för att begära en åsidosättning.
Två standardlastbalanserare om du använder en intern miljö eller en standardlastbalanserare om du använder en extern miljö. Varje lastbalanserare har färre än sex regler. Kostnaden för data som bearbetas (i GB) omfattar både ingress och utgående för hanteringsåtgärder.