Použití privátního koncového bodu s prostředím Azure Container Apps (Preview)
V tomto článku se dozvíte, jak pomocí privátního koncového bodu bezpečně přistupovat ke službě Azure Container App, aniž byste ji museli zveřejnit na veřejném internetu.
Privátní koncový bod používá privátní IP adresu z vaší virtuální sítě (VNet). Tento koncový bod vás soukromě a bezpečně připojí ke službě využívající Azure Private Link.
Privátní koncové body v Azure Container Apps podporují pouze příchozí provoz HTTP. Provoz TCP není podporován.
Požadavky
- Účet Azure s aktivním předplatným.
- Pokud jej nemáte, můžete si jej zdarma vytvořit.
Vytvoření aplikace typu kontejner
Začněte přihlášením k webu Azure Portal.
Na horním panelu hledání vyhledejte Container Apps .
Ve výsledcích hledání vyberte KontejnerOvé aplikace .
Vyberte tlačítko Vytvořit.
Na stránce Vytvořit aplikaci kontejneru na kartě Základy zadejte následující hodnoty.
Nastavení Akce Předplatné Vyberte své předplatné Azure. Skupina zdrojů Vyberte Vytvořit nový a zadejte my-container-apps. Název kontejnerové aplikace Zadejte my-container-app. Zdroj nasazení Vyberte image kontejneru. Oblast Vyberte USA – střed. V poli Vytvořit prostředí Container Apps vyberte odkaz Vytvořit nový.
Na stránce Vytvořit prostředí Container Apps na kartě Základy zadejte následující hodnoty:
Nastavení Hodnota Název prostředí Zadejte moje prostředí. Zónová redundance Vyberte Zakázáno. Výběrem karty Sítě vytvořte virtuální síť (VNet). Ve výchozím nastavení je povolený přístup k veřejné síti, což znamená, že privátní koncové body jsou zakázané.
Zakažte přístup k veřejné síti.
Ponechte možnost Použít vlastní virtuální síť nastavenou na Ne. Můžete použít existující virtuální síť, ale privátní koncové body jsou podporovány pouze prostředími profilů úloh, které vyžadují podsíť s minimálním rozsahem
/27
CIDR nebo větším. Další informace o nastavení velikosti podsítě najdete v přehledu síťové architektury.Nastavte možnost Povolit privátní koncové body na Ano.
Nastavte název privátního koncového bodu na my-private-endpoint.
V poli Virtuální síť privátního koncového bodu vyberte vytvořit nový odkaz.
Na stránce Vytvořit virtuální síť nastavte virtuální síť na my-private-endpoint-vnet. Vyberte OK.
V poli Podsíť virtuální sítě privátního koncového bodu vyberte vytvořit nový odkaz.
Na stránce Vytvořit podsíť nastavte název podsítě na my-private-endpoint-vnet-subnet. Vyberte OK.
Dns ponechte nastavený na zónu Azure Privátní DNS.
Vyberte Vytvořit.
Na stránce Vytvořit kontejnerovou aplikaci na kartě Základy vyberte Další: Kontejner >.
Na stránce Vytvořit aplikaci kontejneru na kartě Kontejner vyberte Použít image rychlého startu.
Vyberte Zkontrolovat a vytvořte v dolní části stránky.
Pokud se nenašly žádné chyby, tlačítko Vytvořit je povolené.
Pokud dojde k chybám, označí se všechny karty obsahující chyby červenou tečkou. Přejděte na příslušnou kartu. Pole obsahující chybu jsou červeně zvýrazněná. Po opravení všech chyb vyberte Zkontrolovat a vytvořit znovu.
Vyberte Vytvořit.
Zobrazí se stránka se zprávou Probíhá nasazení . Po úspěšném dokončení nasazení se zobrazí zpráva: Vaše nasazení je dokončené.
Když přejdete na koncový bod aplikace kontejneru, obdržíte
ERR_CONNECTION_CLOSED
, protože vaše prostředí kontejnerové aplikace má zakázaný veřejný přístup. Místo toho přistupujete k aplikaci kontejneru pomocí privátního koncového bodu.
Požadavky
Účet Azure s aktivním předplatným.
- Pokud jej nemáte, můžete si jej zdarma vytvořit.
Nejnovější verze Azure CLI. Pokud chcete zajistit, že používáte nejnovější verzi, spusťte následující příkaz.
az upgrade
Nejnovější verze rozšíření Azure Container Apps pro Azure CLI Pokud chcete zajistit, že používáte nejnovější verzi, spusťte následující příkaz.
az extension add --name containerapp --upgrade --allow-preview true
Poznámka:
Od května 2024 už rozšíření Azure CLI ve výchozím nastavení nepovolují funkce ve verzi Preview. Pokud chcete získat přístup k funkcím Container Apps ve verzi Preview, nainstalujte rozšíření Container Apps pomocí
--allow-preview true
nástroje .
Další informace o požadavcích a nastavení najdete v tématu Rychlý start: Nasazení první aplikace kontejneru s využitím containerapp upu.
Nastavení proměnných prostředí
Nastavte následující proměnné prostředí.
RESOURCE_GROUP="my-container-apps"
LOCATION="centralus"
ENVIRONMENT_NAME="my-environment"
CONTAINERAPP_NAME="my-container-app"
VNET_NAME="my-custom-vnet"
SUBNET_NAME="my-custom-subnet"
PRIVATE_ENDPOINT="my-private-endpoint"
PRIVATE_ENDPOINT_CONNECTION="my-private-endpoint-connection"
PRIVATE_DNS_ZONE="privatelink.${LOCATION}.azurecontainerapps.io"
DNS_LINK="my-dns-link"
Vytvoření skupiny prostředků Azure
Vytvořte skupinu prostředků pro uspořádání služeb souvisejících s nasazením aplikace kontejneru.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Vytvoření virtuální sítě
Prostředí v Azure Container Apps vytvoří zabezpečenou hranici kolem skupiny kontejnerových aplikací. KontejnerOvé aplikace nasazené do stejného prostředí se nasazují ve stejné virtuální síti a zapisují protokoly do stejného pracovního prostoru služby Log Analytics.
Vytvořte virtuální síť Azure pro přidružení k prostředí Container Apps. Virtuální síť musí mít k dispozici podsíť pro nasazení prostředí. Můžete použít existující virtuální síť, ale privátní koncové body jsou podporovány pouze prostředími profilů úloh, které vyžadují podsíť s minimálním rozsahem
/27
CIDR nebo větším. Další informace o nastavení velikosti podsítě najdete v přehledu síťové architektury.az network vnet create \ --resource-group $RESOURCE_GROUP \ --name $VNET_NAME \ --location $LOCATION \ --address-prefix 10.0.0.0/16
Vytvořte podsíť, která se přidruží k virtuální síti a bude obsahovat privátní koncový bod.
az network vnet subnet create \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --address-prefixes 10.0.0.0/21
Načtěte ID podsítě. Použijete ho k vytvoření privátního koncového bodu.
SUBNET_ID=$(az network vnet subnet show \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --query "id" \ --output tsv)
Vytvořit prostředí
Vytvořte prostředí Container Apps pomocí virtuální sítě nasazené v předchozích krocích. Privátní koncové body jsou podporovány pouze prostředími profilů úloh, což je výchozí typ pro nová prostředí.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Načtěte ID prostředí. Použijete ho ke konfiguraci prostředí.
ENVIRONMENT_ID=$(az containerapp env show \ --resource-group $RESOURCE_GROUP \ --name $ENVIRONMENT_NAME \ --query "id" \ --output tsv)
Zakažte přístup k veřejné síti pro prostředí. To je potřeba k povolení privátních koncových bodů.
az containerapp env update \ --id $ENVIRONMENT_ID \ --public-network-access Disabled
Vytvoření privátního koncového bodu
Vytvořte privátní koncový bod v prostředí a podsíti, které jste vytvořili dříve.
az network private-endpoint create \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--name $PRIVATE_ENDPOINT \
--subnet $SUBNET_ID \
--private-connection-resource-id $ENVIRONMENT_ID \
--connection-name $PRIVATE_ENDPOINT_CONNECTION \
--group-id managedEnvironments
Konfigurace privátní zóny DNS
Načtěte IP adresu privátního koncového bodu. Použijete ho k přidání záznamu DNS do privátní zóny DNS.
PRIVATE_ENDPOINT_IP_ADDRESS=$(az network private-endpoint show \ --name $PRIVATE_ENDPOINT \ --resource-group $RESOURCE_GROUP \ --query 'customDnsConfigs[0].ipAddresses[0]' \ --output tsv)
Načtěte výchozí doménu prostředí. Použijete ho k přidání záznamu DNS do privátní zóny DNS.
DNS_RECORD_NAME=$(az containerapp env show \ --id $ENVIRONMENT_ID \ --query 'properties.defaultDomain' \ --output tsv | sed 's/\..*//')
Vytvořte privátní zónu DNS.
az network private-dns zone create \ --resource-group $RESOURCE_GROUP \ --name $PRIVATE_DNS_ZONE
Vytvořte propojení mezi vaší virtuální sítí a privátní zónou DNS.
az network private-dns link vnet create \ --resource-group $RESOURCE_GROUP \ --zone-name $PRIVATE_DNS_ZONE \ --name $DNS_LINK \ --virtual-network $VNET_NAME \ --registration-enabled false
Přidejte záznam pro privátní koncový bod do zóny privátního DNS.
az network private-dns record-set a add-record \ --resource-group $RESOURCE_GROUP \ --zone-name $PRIVATE_DNS_ZONE \ --record-set-name $DNS_RECORD_NAME \ --ipv4-address $PRIVATE_ENDPOINT_IP_ADDRESS
Nasazení aplikace typu kontejner
Nasaďte ve svém prostředí aplikaci typu kontejner. Tato aplikace kontejneru jednoduše používá image rychlého startu.
Když přejdete na koncový bod aplikace kontejneru, obdržíte ERR_CONNECTION_CLOSED
, protože vaše prostředí kontejnerové aplikace má zakázaný veřejný přístup. Místo toho přistupujete k aplikaci kontejneru pomocí privátního koncového bodu.
az containerapp up \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT_NAME \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external \
--query properties.configuration.ingress.fqdn
Ověření připojení privátního koncového bodu
V této části vytvoříte virtuální počítač přidružený k vaší virtuální síti, abyste měli přístup k aplikaci kontejneru, kterou jste definovali pomocí privátního koncového bodu.
Vytvořit virtuální počítač
Začněte přihlášením k webu Azure Portal.
Na horním panelu hledání vyhledejte virtuální počítače .
Ve výsledcích hledání vyberte virtuální počítače .
Vyberte Vytvořit.
Na stránce Vytvořit virtuální počítač na kartě Základy zadejte následující hodnoty.
Nastavení Akce Předplatné Vyberte své předplatné Azure. Skupina zdrojů Vyberte my-container-apps. Virtual machine name Zadejte azurevm. Oblast Vyberte USA – střed. Možnosti dostupnosti Vyberte Možnost Bez redundance infrastruktury. Typ zabezpečení Vyberte položku Standardní. Image Vyberte Windows Server 2022 Datacenter : Azure Edition – x64 Gen2. Username Zadejte azureuser. Heslo Zadejte heslo. Potvrdit heslo Znovu zadejte heslo. Veřejné příchozí porty Vyberte Žádná. Na kartě Sítě zadejte následující hodnoty.
Nastavení Akce Virtuální síť Vyberte my-private-endpoint-vnet. Podsíť Vyberte my-private-endpoint-vnet-subnet (10.0.0.0/23). Veřejná IP adresa Vyberte Žádná. Skupina zabezpečení sítě síťových adaptérů Vyberte Upřesnit. Vyberte Zkontrolovat a vytvořit.
Vyberte Vytvořit.
Nastavení proměnných prostředí
Nastavte následující proměnné prostředí.
VM_NAME="azurevm"
VM_ADMIN_USERNAME="azureuser"
Vytvořit virtuální počítač
Spusťte následující příkaz:
az vm create \
--resource-group $RESOURCE_GROUP \
--name $VM_NAME \
--image Win2022Datacenter \
--public-ip-address "" \
--vnet-name $VNET_NAME \
--subnet $SUBNET_NAME \
--admin-username $VM_ADMIN_USERNAME
Po spuštění tohoto příkazu se zobrazí výzva k zadání hesla správce pro váš virtuální počítač.
Uživatelské jméno správce musí mít délku 1 až 20 znaků.
Heslo správce má následující požadavky:
- Musí mít délku 12 až 123 znaků.
- Musí mít 3 z následujících znaků: 1 malé písmeno, 1 velké písmeno, 1 číslo a 1 speciální znak.
Test připojení
Začněte přihlášením k webu Azure Portal.
Vyhledejte virtuální počítač, který jste vytvořili na horním panelu hledání, a vyberte ho z výsledků hledání.
Na stránce Přehled virtuálního počítače vyberte Připojit a pak vyberte Připojit přes Bastion.
Na stránce Bastion vyberte Nasadit Bastion.
Nastavte uživatelské jméno a heslo virtuálního počítače na uživatelské jméno a heslo, které jste použili při vytváření virtuálního počítače.
Vyberte Připojit.
Po připojení spusťte na virtuálním počítači PowerShell.
V PowerShellu spusťte následující příkaz. <Zástupné symboly> nahraďte hodnotami.
nslookup <CONTAINER_APP_ENDPOINT>
Výstup je podobný následujícímu příkladu, přičemž hodnoty nahradí <zástupné symboly>.
Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: <ENVIRONMENT_DEFAULT_DOMAIN>.privatelink.<LOCATION>.azurecontainerapps.io Address: 10.0.0.4 Aliases: <CONTAINER_APP_ENDPOINT>
Otevřete prohlížeč na virtuálním počítači.
Přejděte ke koncovému bodu aplikace kontejneru. Zobrazí se výstup image kontejnerové aplikace pro rychlý start.
Vyčištění prostředků
Pokud tuto aplikaci nebudete dál používat, můžete odebrat skupinu prostředků my-container-apps . Tím se odstraní instance Azure Container Apps a všechny přidružené služby. Odstraní také skupinu prostředků, kterou služba Container Apps automaticky vytvořila a která obsahuje vlastní síťové komponenty.
Upozornění
Následující příkaz odstraní zadanou skupinu prostředků a všechny prostředky obsažené v ní. Pokud prostředky mimo rozsah tohoto průvodce existují v zadané skupině prostředků, odstraní se také.
az group delete --name $RESOURCE_GROUP