Sítě v prostředí Azure Container Apps

Azure Container Apps běží v kontextu prostředí s vlastní virtuální sítí.

Ve výchozím nastavení je vaše prostředí aplikace kontejneru vytvořeno pomocí virtuální sítě, která je automaticky vygenerována za vás. Pro podrobnou kontrolu nad sítí můžete při vytváření prostředí poskytnout existující virtuální síť. Jakmile vytvoříte prostředí s vygenerovanou nebo existující virtuální sítí, typ sítě nelze změnit.

Vygenerované virtuální sítě mají následující charakteristiky.

Mezi ně patří:

  • nepřístupný při jejich vytváření v tenantovi Microsoftu
  • veřejně přístupná přes internet
  • přístup pouze ke koncovým bodům přístupným z internetu

Kromě toho podporují pouze omezenou podmnožinu síťových funkcí, jako jsou omezení ip adres příchozího přenosu dat a ovládací prvky příchozího přenosu dat na úrovni kontejneru.

Pokud potřebujete více síťových funkcí Azure, použijte existující virtuální síť, například:

  • Integrace se službou Application Gateway
  • Network Security Groups (Skupiny zabezpečení sítě)
  • Komunikace s prostředky za privátními koncovými body ve vaší virtuální síti

Dostupné funkce virtuální sítě závisí na vašem výběru prostředí.

Výběr prostředí

Container Apps má dva různé typy prostředí, které sdílejí mnoho stejných síťových charakteristik s některými klíčovými rozdíly.

Typ prostředí Popis Podporované typy plánů
Profily úloh Podporuje trasy definované uživatelem (UDR) a výchozí přenos dat prostřednictvím služby NAT Gateway. Minimální požadovaná velikost podsítě je /27. Consumption, Dedicated
Pouze spotřeba Nepodporuje trasy definované uživatelem (UDR), výchozí přenos dat prostřednictvím služby NAT Gateway, partnerský vztah přes vzdálenou bránu nebo jiné vlastní výchozí přenosy dat. Minimální požadovaná velikost podsítě je /23. Využití

Úrovně přístupnosti

Můžete nakonfigurovat, jestli vaše aplikace kontejneru povoluje veřejné příchozí přenosy dat nebo příchozí přenos dat pouze z vaší virtuální sítě na úrovni prostředí.

Úroveň přístupnosti Popis
Externí Umožňuje aplikaci kontejneru přijímat veřejné žádosti. Externí prostředí se nasazují s virtuální IP adresou na externí veřejné IP adrese.
Interní Interní prostředí nemají žádné veřejné koncové body a nasazují se s virtuální IP adresou (VIP) namapovanou na interní IP adresu. Interní koncový bod je interní nástroj pro vyrovnávání zatížení Azure (ILB) a IP adresy se vydávají ze seznamu privátních IP adres vlastní virtuální sítě.

Vlastní konfigurace virtuální sítě

Při vytváření vlastní virtuální sítě mějte na paměti následující situace:

  • Pokud chcete, aby vaše aplikace kontejneru omezovala veškerý vnější přístup, vytvořte interní prostředí Container Apps.

  • Pokud používáte vlastní virtuální síť, musíte zadat podsíť vyhrazenou výhradně pro prostředí Container App, které nasadíte. Tato podsíť není dostupná pro jiné služby.

  • Síťové adresy se přiřazují z rozsahu podsítě, který definujete při vytváření prostředí.

    • Rozsah podsítě používaný prostředím Container Apps můžete definovat.

    • Příchozí požadavky můžete omezit výhradně na virtuální síť tím, že prostředí nasadíte jako interní.

Poznámka:

Když zadáte vlastní virtuální síť, vytvoří se další spravované prostředky . Za tyto prostředky se účtují náklady podle jejich přidružených sazeb.

Když začnete navrhovat síť kolem aplikace kontejneru, přečtěte si informace o plánování virtuálních sítí.

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

Poznámka:

Přesun virtuálních sítí mezi různými skupinami prostředků nebo předplatnými není povolený, pokud je virtuální síť používána prostředím Container Apps.

Chování proxy serveru hraničního serveru HTTP

Azure Container Apps používá proxy volání jako hraniční proxy server HTTP. Protokol TLS (Transport Layer Security) se ukončí na hraničních zařízeních a požadavky se směrují na základě pravidel rozdělení provozu a směrují provoz do správné aplikace.

Aplikace HTTP se škáluje na základě počtu požadavků a připojení HTTP. Envoy směruje interní provoz uvnitř clusterů.

Podřízená připojení podporují protokol HTTP1.1 a HTTP2 a envoy automaticky rozpozná a upgraduje připojení, pokud připojení klienta vyžaduje upgrade.

Upstreamová připojení jsou definována nastavením transport vlastnosti u objektu příchozího přenosu dat.

Konfigurace příchozího přenosu dat

V části Příchozí přenos dat můžete nakonfigurovat následující nastavení:

  • Úroveň přístupnosti: Aplikaci kontejneru můžete nastavit jako externě nebo interně přístupnou v prostředí. Proměnná CONTAINER_APP_ENV_DNS_SUFFIX prostředí se používá k automatickému překladu plně kvalifikované přípony názvu domény (FQDN) pro vaše prostředí. Při komunikaci mezi kontejnerovými aplikacemi ve stejném prostředí můžete také použít název aplikace. Další informace o přístupu k aplikacím najdete v tématu Příchozí přenos dat v Azure Container Apps.

  • Pravidla rozdělení provozu: Pravidla rozdělení provozu můžete definovat mezi různými revizemi aplikace. Další informace najdete v tématu Rozdělení provozu.

Další informace o různých scénářích sítí najdete v tématu Příchozí přenos dat v Azure Container Apps.

Závislosti portálu

Pro každou aplikaci v Azure Container Apps existují dvě adresy URL.

Modul runtime Container Apps zpočátku vygeneruje plně kvalifikovaný název domény (FQDN) používaný pro přístup k aplikaci. Podívejte se na adresu URL aplikace v okně Přehled vaší aplikace kontejneru na webu Azure Portal pro plně kvalifikovaný název domény vaší aplikace kontejneru.

Druhá adresa URL se také vygeneruje za vás. Toto umístění uděluje přístup ke službě streamování protokolů a konzole. V případě potřeby možná budete muset přidat https://azurecontainerapps.dev/ do seznamu povolených bran firewall nebo proxy serveru.

Porty a IP adresy

Pro příchozí připojení jsou zpřístupněny následující porty.

Protokol Porty
HTTP/HTTPS 80, 443

IP adresy jsou rozdělené na následující typy:

Typ Popis
Veřejná příchozí IP adresa Používá se pro provoz aplikací v externím nasazení a provoz správy v interních i externích nasazeních.
Odchozí veřejná IP adresa Používá se jako IP adresa "from" pro odchozí připojení, která opustí virtuální síť. Tato připojení nejsou směrována do sítě VPN. Odchozí IP adresy se můžou v průběhu času měnit. Použití služby NAT Gateway nebo jiného proxy serveru pro odchozí provoz z prostředí Container Apps se podporuje jenom v prostředí profilů úloh.
IP adresa interního nástroje pro vyrovnávání zatížení Tato adresa existuje pouze v interním prostředí.

Podsíť

Integrace virtuální sítě závisí na vyhrazené podsíti. Způsob přidělování IP adres v podsíti a podporované velikosti podsítí závisí na tom, jaký plán používáte v Azure Container Apps.

Pečlivě vyberte velikost podsítě. Velikosti podsítí se po vytvoření prostředí Container Apps nedají upravit.

Různé typy prostředí mají různé požadavky na podsíť:

  • /27 je minimální velikost podsítě potřebná pro integraci virtuální sítě.

  • Vaše podsíť musí být delegována na Microsoft.App/environments.

  • Při použití externího prostředí s externím příchozím přenosem dat se příchozí provoz směruje přes veřejnou IP adresu infrastruktury místo přes vaši podsíť.

  • Container Apps automaticky rezervuje 12 IP adres pro integraci s podsítí. Počet IP adres požadovaných pro integraci infrastruktury se liší v závislosti na požadavcích na škálování prostředí. Další IP adresy se přidělují podle následujících pravidel v závislosti na typu profilu úloh, který používáte, se přidělují v závislosti na profilu úloh vašeho prostředí:

    • Vyhrazený profil úlohy: Při horizontálním navýšení kapacity aplikace kontejneru má každý uzel přiřazenou jednu IP adresu.

    • Profil úlohy Consumption: Každá IP adresa může být sdílena mezi více replikami. Při plánování, kolik IP adres je pro vaši aplikaci potřeba, naplánujte 1 IP adresu na 10 replik.

  • Při změně revize v režimu jedné revize se požadovaný adresní prostor po krátkou dobu zdvojnásobí, aby bylo možné podporovat nulový výpadek nasazení. To má vliv na skutečnou, dostupnou podporovanou repliku nebo uzly pro danou velikost podsítě. Následující tabulka uvádí jak maximální dostupné adresy na blok CIDR, tak vliv na horizontální škálování.

    Velikost podsítě Dostupné IP adresy1 Maximální počet uzlů (profil vyhrazené úlohy)2 Maximální počet replik (profil úlohy Consumption)2
    /23 500 250 2 500
    /24 244 122 1,220
    /25 116 58 580
    /26 52 26 260
    /27 20 10 100

    1 Dostupná IP adresa je velikost podsítě minus 12 IP adres požadovaných pro infrastrukturu Azure Container Apps.
    2 To je účet pro aplikace v režimu jedné revize.

Omezení rozsahu adres podsítě

Rozsahy adres podsítě se nemůžou překrývat s následujícími rozsahy vyhrazenými službami Azure Kubernetes Services:

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

Prostředí profilů úloh si navíc vyhrazuje následující adresy:

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

Konfigurace podsítě pomocí rozhraní příkazového řádku

Při vytváření prostředí Container Apps zadáte ID prostředků pro jednu podsíť.

Pokud používáte rozhraní příkazového řádku, parametr definující ID prostředku podsítě je infrastructure-subnet-resource-id. Podsíť hostuje komponenty infrastruktury a kontejnery uživatelských aplikací.

Pokud používáte Azure CLI pouze s prostředím Consumption a definuje se rozsah platformReservedCidr , obě podsítě se nesmí překrývat s rozsahem IP adres definovaným v platformReservedCidr.

Trasy

Trasy definované uživatelem (UDR)

Trasy definované uživatelem (UDR) a řízené výchozí přenosy prostřednictvím služby NAT Gateway jsou podporovány v prostředí profilů úloh. Tyto funkce nejsou podporované v prostředí jen pro spotřebu.

Poznámka:

Pokud používáte trasu definovanou uživatelem se službou Azure Firewall v Azure Container Apps, musíte do seznamu povolených pro bránu firewall přidat určité značky plně kvalifikovaných názvů domén a služeb. Další informace najdete v tématu Konfigurace trasy definované uživatelem pomocí služby Azure Firewall.

  • Trasu definovanou uživatelem s prostředími profilů úloh můžete použít k omezení odchozích přenosů z vaší aplikace kontejneru prostřednictvím služby Azure Firewall nebo jiných síťových zařízení.

  • Konfigurace trasy definované uživatelem se provádí mimo rozsah prostředí Container Apps.

Diagram of how UDR is implemented for Container Apps.

Azure po vytvoření vytvoří výchozí směrovací tabulku pro vaše virtuální sítě. Implementací směrovací tabulky definované uživatelem můžete řídit směrování provozu ve vaší virtuální síti. Můžete například vytvořit trasu definovanou uživatelem, která směruje veškerý provoz do brány firewall.

Konfigurace trasy definované uživatelem pomocí služby Azure Firewall

Trasy definované uživatelem se podporují pouze v prostředí profilů úloh. Následující pravidla aplikace a sítě se musí přidat do seznamu povolených pro vaši bránu firewall v závislosti na tom, které prostředky používáte.

Poznámka:

Průvodce nastavením trasy definované uživatelem pomocí container Apps pro omezení odchozího provozu pomocí služby Azure Firewall najdete v tématu věnovaném kontejnerovým aplikacím a bráně Azure Firewall.

Pravidla aplikace

Pravidla aplikací povolují nebo zakazují provoz na základě aplikační vrstvy. V závislosti na scénáři se vyžadují následující pravidla odchozích aplikací brány firewall.

Scénáře Fqdn Popis
Všechny scénáře mcr.microsoft.com, *.data.mcr.microsoft.com Tyto plně kvalifikované názvy domén pro Službu Microsoft Container Registry (MCR) používají azure Container Apps a při použití služby Azure Container Apps s Azure Firewallem je potřeba přidat pravidla sítě pro MCR do seznamu povolených.
Azure Container Registry (ACR) Adresa ACR, *.blob.core.windows.netlogin.microsoft.com Tyto plně kvalifikované názvy domén se vyžadují při používání azure Container Apps s ACR a službou Azure Firewall.
Azure Key Vault Vaše adresa služby Azure-Key-Vault login.microsoft.com Tyto plně kvalifikované názvy domén se vyžadují kromě značky služby vyžadované pro síťové pravidlo pro Azure Key Vault.
Spravovaná identita *.identity.azure.net, login.microsoftonline.com, , *.login.microsoftonline.com*.login.microsoft.com Tyto plně kvalifikované názvy domén se vyžadují při použití spravované identity se službou Azure Firewall ve službě Azure Container Apps.
Registr Docker Hubu hub.docker.com, , registry-1.docker.ioproduction.cloudflare.docker.com Pokud používáte registr Docker Hubu a chcete k němu přistupovat přes bránu firewall, musíte do brány firewall přidat tyto plně kvalifikované názvy domén.
Pravidla sítě

Pravidla sítě povolují nebo zakazují provoz na základě síťové a přenosové vrstvy. V závislosti na scénáři se vyžadují následující pravidla odchozí sítě brány firewall.

Scénáře Značka služby Popis
Všechny scénáře MicrosoftContainerRegistry, AzureFrontDoorFirstParty Tyto značky služeb pro Službu Microsoft Container Registry (MCR) používají služby Azure Container Apps a tato pravidla sítě nebo pravidla aplikací pro MCR je potřeba přidat do seznamu povolených při používání služby Azure Container Apps se službou Azure Firewall.
Azure Container Registry (ACR) AzureContainerRegistry, AzureActiveDirectory Pokud používáte ACR s Azure Container Apps, musíte nakonfigurovat tato pravidla aplikací používaná službou Azure Container Registry.
Azure Key Vault AzureKeyVault, AzureActiveDirectory Tyto značky služeb se vyžadují kromě plně kvalifikovaného názvu domény pro pravidlo aplikace pro Azure Key Vault.
Spravovaná identita AzureActiveDirectory Pokud používáte spravovanou identitu se službou Azure Container Apps, budete muset nakonfigurovat tato pravidla aplikací používaná spravovanou identitou.

Poznámka:

Informace o prostředcích Azure, které používáte se službou Azure Firewall, které nejsou uvedené v tomto článku, najdete v dokumentaci ke značkům služeb.

Integrace služby NAT Gateway

Pomocí služby NAT Gateway můžete zjednodušit odchozí připojení pro odchozí internetový provoz ve vaší virtuální síti v prostředí profilů úloh.

Při konfiguraci služby NAT Gateway ve vaší podsíti poskytuje služba NAT Gateway statickou veřejnou IP adresu pro vaše prostředí. Veškerý odchozí provoz z vaší aplikace kontejneru se směruje přes statickou veřejnou IP adresu služby NAT Gateway.

Zabezpečení prostředí

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

Prostředí profilů úloh příchozího a výstupního síťového provozu můžete plně zabezpečit provedením následujících akcí:

Šifrování sítě na úrovni prostředí (Preview)

Azure Container Apps podporuje šifrování sítě na úrovni prostředí pomocí vzájemného zabezpečení vrstvy přenosu (mTLS). Když se vyžaduje komplexní šifrování, mTLS šifruje data přenášená mezi aplikacemi v rámci prostředí.

Aplikace v prostředí Container Apps se automaticky ověřují. Modul runtime Container Apps ale nepodporuje autorizaci pro řízení přístupu mezi aplikacemi pomocí integrované služby mTLS.

Když vaše aplikace komunikují s klientem mimo prostředí, podporuje se obousměrné ověřování pomocí MTLS. Další informace najdete v tématu Konfigurace klientských certifikátů.

Poznámka:

Povolení mTLS pro vaše aplikace může zvýšit latenci odezvy a snížit maximální propustnost ve scénářích s vysokým zatížením.

MTLS můžete povolit pomocí následujících příkazů.

Při vytváření:

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

Pro existující aplikaci kontejneru:

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

DNS

  • Vlastní DNS: Pokud vaše virtuální síť používá místo výchozího serveru DNS poskytnutého Azure vlastní server DNS, nakonfigurujte server DNS tak, aby předával nevyřešené dotazy DNS .168.63.129.16 Rekurzivní překladače Azure používá tuto IP adresu k překladu požadavků. Při konfiguraci skupiny zabezpečení sítě nebo brány firewall nezablokujte 168.63.129.16 adresu, jinak prostředí Container Apps nebude fungovat správně.

  • Příchozí přenos dat v oboru virtuální sítě: Pokud plánujete používat příchozí přenos dat VNet-scope v interním prostředí, nakonfigurujte své domény jedním z následujících způsobů:

    1. Jiné než vlastní domény: Pokud nechcete používat vlastní doménu, vytvořte privátní zónu DNS, která přeloží výchozí doménu prostředí Container Apps na statickou IP adresu prostředí Container Apps. Můžete použít Azure Privátní DNS nebo vlastní server DNS. Pokud používáte Azure Privátní DNS, vytvořte privátní zónu DNS s názvem výchozí doména prostředí<UNIQUE_IDENTIFIER>.<REGION_NAME>.azurecontainerapps.io Container App () se záznamemA. Záznam A obsahuje název *<DNS Suffix> a statickou IP adresu prostředí Container Apps.

    2. Vlastní domény: Pokud plánujete používat vlastní domény a používáte externí prostředí Container Apps, použijte veřejně přeložitelnou doménu k přidání vlastní domény a certifikátu do aplikace kontejneru. Pokud používáte vnitřní prostředí aplikace kontejneru, neexistuje žádné ověření vazby DNS, protože ke clusteru lze přistupovat pouze z virtuální sítě. Navíc vytvořte soukromou zónu DNS, která přeloží vrcholovou doménu na statickou IP adresu prostředí aplikace kontejneru. Můžete použít Azure Privátní DNS nebo vlastní server DNS. Pokud používáte Azure Privátní DNS, vytvořte zónu Privátní DNS pojmenovanou jako vrcholovou doménu se záznamemA, který odkazuje na statickou IP adresu prostředí Container Apps.

Statická IP adresa prostředí Container Apps je k dispozici na webu Azure Portal na vlastní příponě DNS stránky aplikace kontejneru nebo pomocí příkazu Azure CLI az containerapp env list .

Spravované prostředky

Když do vlastní sítě nasadíte interní nebo externí prostředí, vytvoří se nová skupina prostředků v předplatném Azure, kde je vaše prostředí hostované. Tato skupina prostředků obsahuje komponenty infrastruktury spravované platformou Azure Container Apps. Neupravujte služby v této skupině ani samotné skupině prostředků.

Prostředí profilů úloh

Název skupiny prostředků vytvořené v předplatném Azure, ve kterém je vaše prostředí hostované ME_ , má ve výchozím nastavení předponu a název skupiny prostředků se dá přizpůsobit při vytváření prostředí kontejnerové aplikace.

V případě externích prostředí obsahuje skupina prostředků veřejnou IP adresu použitou speciálně pro příchozí připojení k vašemu externímu prostředí a nástroji pro vyrovnávání zatížení. V interních prostředích skupina prostředků obsahuje pouze Load Balancer.

Kromě standardní fakturace Azure Container Apps se vám účtují následující poplatky:

Prostředí pouze pro spotřebu

Název skupiny prostředků vytvořené v předplatném Azure, kde je vaše prostředí hostované MC_ , má ve výchozím nastavení předponu a název skupiny prostředků se při vytváření aplikace kontejneru nedá přizpůsobit. Skupina prostředků obsahuje veřejné IP adresy používané speciálně pro odchozí připojení z vašeho prostředí a nástroj pro vyrovnávání zatížení.

Kromě standardní fakturace Azure Container Apps se vám účtují následující poplatky:

Další kroky