Tillhandahålla ett virtuellt nätverk till en Azure Container Apps-miljö
I följande exempel visas hur du skapar en Container Apps-miljö i ett befintligt virtuellt nätverk (VNet).
Börja med att logga in på Azure Portal.
Skapa en containerapp
Om du vill skapa din containerapp börjar du på startsidan för Azure Portal.
- Sök efter Container Apps i det övre sökfältet.
- Välj Container Apps i sökresultatet.
- Markera knappen Skapa.
Fliken Grundläggande
På fliken Grundläggande utför du följande åtgärder.
Ange följande värden i avsnittet Projektinformation .
Inställning Åtgärd Prenumeration Välj din Azure-prenumerationen. Resursgrupp Välj Skapa ny och ange my-container-apps. Namn på containerapp Ange my-container-app. Distributionskälla Välj Containeravbildning.
Skapa en miljö
Skapa sedan en miljö för din containerapp.
Välj lämplig region.
Inställning Värde Region Välj USA, centrala. I fältet Skapa containerappar väljer du länken Skapa ny .
På sidan Skapa Container Apps-miljö på fliken Grundläggande anger du följande värden:
Inställning Värde Miljönamn Ange min miljö. Miljötyp Välj Arbetsbelastningsprofiler. Zonredundans Välj Inaktiverad Välj fliken Övervakning för att skapa en Log Analytics-arbetsyta.
Välj Azure Log Analytics som loggmål.
Välj länken Skapa ny i fältet Log Analytics-arbetsyta och ange följande värden.
Inställning Värde Name Ange my-container-apps-logs. Fältet Plats är förfyllt med USA , centrala åt dig.
Välj OK.
Du kan också distribuera en privat DNS för din Container Apps-miljö. Mer information finns i Skapa och konfigurera en Azure Privat DNS-zon.
Skapa ett virtuellt nätverk
Kommentar
Om du vill använda ett VNet med Container Apps måste det virtuella nätverket ha ett dedikerat undernät med ett CIDR-intervall på /23
eller större när du använder förbrukningsmiljön endast environemnt eller ett CIDR-intervall av /27
eller större när du använder arbetsbelastningsprofilmiljön. Mer information om storlek på undernät finns i översikten över nätverksarkitekturen.
Välj fliken Nätverk.
Välj Ja bredvid Använd ditt eget virtuella nätverk.
Bredvid rutan Virtuellt nätverk väljer du länken Skapa ny och anger följande värde.
Inställning Värde Name Ange my-custom-vnet. Välj knappen OK.
Bredvid rutan Infrastrukturundernät väljer du länken Skapa ny och anger följande värden:
Inställning Värde Namn på undernät Ange infrastruktur-undernät. Adressblock för virtuellt nätverk Behåll standardvärdena. Adressblock för undernät Behåll standardvärdena. Välj knappen OK.
Under Virtuell IP väljer du Extern för en extern miljö eller Intern för en intern miljö.
Välj Skapa.
Distribuera containerappen
Välj Granska och skapa längst ned på sidan.
Om inga fel hittas är knappen Skapa aktiverad.
Om det finns fel markeras alla flikar som innehåller fel med en röd punkt. Gå till lämplig flik. Fält som innehåller ett fel är markerade i rött. När alla fel har åtgärdats väljer du Granska och skapa igen.
Välj Skapa.
En sida med meddelandet Distribution pågår visas. När distributionen har slutförts visas meddelandet: Distributionen är klar.
Förutsättningar
- Azure-konto med en aktiv prenumeration.
- Om du inte har någon sådan nu kan du skapa en kostnadsfritt.
- Installera Azure CLI version 2.28.0 eller senare.
Ställ in
Om du vill logga in på Azure från CLI kör du följande kommando och följer anvisningarna för att slutföra autentiseringsprocessen.
az login
Kör uppgraderingskommandot för att säkerställa att du kör den senaste versionen av CLI.
az upgrade
Installera eller uppdatera sedan Azure Container Apps-tillägget för CLI.
Om du får fel om saknade parametrar när du kör az containerapp
kommandon i Azure CLI eller cmdletar från modulen Az.App
i Azure PowerShell kontrollerar du att den senaste versionen av Azure Container Apps-tillägget är installerad.
az extension add --name containerapp --upgrade
Kommentar
Från och med maj 2024 aktiverar Azure CLI-tillägg inte längre förhandsversionsfunktioner som standard. Om du vill komma åt förhandsversionsfunktioner för Container Apps installerar du containerapptillägget med --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Nu när det aktuella tillägget eller modulen har installerats registrerar du Microsoft.App
namnrymderna och Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Ange miljövariabler
Ange följande miljövariabler. <PLACEHOLDERS>
Ersätt med dina värden:
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
Skapa en Azure-resursgrupp
Skapa en resursgrupp för att organisera de tjänster som är relaterade till distributionen av containerappen.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Skapa en miljö
En miljö i Azure Container Apps skapar en säker gräns runt en grupp med containerappar. Container Apps som distribueras till samma miljö distribueras i samma virtuella nätverk och skriver loggar till samma Log Analytics-arbetsyta.
Registrera providern Microsoft.ContainerService
.
az provider register --namespace Microsoft.ContainerService
Deklarera en variabel som ska innehålla det virtuella nätverkets namn.
VNET_NAME="my-custom-vnet"
Skapa nu ett virtuellt nätverk som ska associeras med Container Apps-miljön. Det virtuella nätverket måste ha ett undernät tillgängligt för miljödistributionen.
az network vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_NAME \
--location $LOCATION \
--address-prefix 10.0.0.0/16
az network vnet subnet create \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_NAME \
--name infrastructure-subnet \
--address-prefixes 10.0.0.0/23
När du använder miljön Arbetsbelastningsprofiler måste du uppdatera det virtuella nätverket för att delegera undernätet till Microsoft.App/environments
. Den här delegeringen behövs inte för förbrukningsmiljön.
az network vnet subnet update \
--resource-group $RESOURCE_GROUP \
--vnet-name $VNET_NAME \
--name infrastructure-subnet \
--delegations Microsoft.App/environments
När det virtuella nätverket har skapats kan du nu fråga efter infrastrukturundernäts-ID:t.
INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name $VNET_NAME --name infrastructure-subnet --query "id" -o tsv | tr -d '[:space:]'`
Skapa slutligen Container Apps-miljön med det anpassade virtuella nätverket.
Kör följande kommando för att skapa miljön. Om du vill skapa en intern miljö lägger du till --internal-only
.
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION" \
--infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET
I följande tabell beskrivs de parametrar som används med containerapp env create
.
Parameter | Description |
---|---|
name |
Namnet på Container Apps-miljön. |
resource-group |
Resursgruppens namn. |
logs-workspace-id |
(Valfritt) ID för en befintlig Log Analytics-arbetsyta. Om den utelämnas skapas en arbetsyta åt dig. |
logs-workspace-key |
Log Analytics-klienthemligheten. Krävs om du använder en befintlig arbetsyta. |
location |
Den Azure-plats där miljön ska distribueras. |
infrastructure-subnet-resource-id |
Resurs-ID för ett undernät för infrastrukturkomponenter och containrar för användarprogram. |
internal-only |
(Valfritt) Miljön använder inte en offentlig statisk IP-adress, endast interna IP-adresser som är tillgängliga i det anpassade virtuella nätverket. (Kräver ett resurs-ID för infrastrukturundernätet.) |
Valfri konfiguration
Du har möjlighet att distribuera en privat DNS och definiera anpassade nätverks-IP-intervall för din Container Apps-miljö.
Distribuera med en privat DNS
Om du vill distribuera containerappen med en privat DNS kör du följande kommandon.
Extrahera först identifierbar information från miljön.
ENVIRONMENT_DEFAULT_DOMAIN=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.defaultDomain --out json | tr -d '"'`
ENVIRONMENT_STATIC_IP=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.staticIp --out json | tr -d '"'`
VNET_ID=`az network vnet show --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --query id --out json | tr -d '"'`
Konfigurera sedan den privata DNS-koden.
az network private-dns zone create \
--resource-group $RESOURCE_GROUP \
--name $ENVIRONMENT_DEFAULT_DOMAIN
az network private-dns link vnet create \
--resource-group $RESOURCE_GROUP \
--name $VNET_NAME \
--virtual-network $VNET_ID \
--zone-name $ENVIRONMENT_DEFAULT_DOMAIN -e true
az network private-dns record-set a add-record \
--resource-group $RESOURCE_GROUP \
--record-set-name "*" \
--ipv4-address $ENVIRONMENT_STATIC_IP \
--zone-name $ENVIRONMENT_DEFAULT_DOMAIN
Nätverksparametrar
Det finns tre valfria nätverksparametrar som du kan välja att definiera när du anropar containerapp env create
. Använd de här alternativen när du har ett peer-kopplat virtuellt nätverk med separata adressintervall. Genom att uttryckligen konfigurera dessa intervall ser du till att de adresser som används av Container Apps-miljön inte är i konflikt med andra intervall i nätverksinfrastrukturen.
Du måste antingen ange värden för alla tre av dessa egenskaper eller ingen av dem. Om de inte anges genereras värdena åt dig.
Parameter | Description |
---|---|
platform-reserved-cidr |
Adressintervallet som används internt för miljöinfrastrukturtjänster. Måste ha en storlek mellan /23 och /12 när endast förbrukningsmiljön används |
platform-reserved-dns-ip |
En IP-adress från intervallet platform-reserved-cidr som används för den interna DNS-servern. Adressen får inte vara den första adressen i intervallet eller nätverksadressen. Om platform-reserved-cidr till exempel är inställt på 10.2.0.0/16 kan det platform-reserved-dns-ip inte vara 10.2.0.0 (nätverksadressen) eller 10.2.0.1 (infrastrukturreserver använder den här IP-adressen). I det här fallet skulle den första användbara IP-adressen för DNS vara 10.2.0.2 . |
docker-bridge-cidr |
Adressintervallet som tilldelats Docker-bryggnätverket. Det här intervallet måste ha en storlek mellan /28 och /12 . |
Adressintervallen
platform-reserved-cidr
ochdocker-bridge-cidr
kan inte vara i konflikt med varandra eller med intervallen för antingen angivet undernät. Se dessutom till att dessa intervall inte är i konflikt med något annat adressintervall i det virtuella nätverket.Om dessa egenskaper inte anges genereras intervallvärdena automatiskt i CLI baserat på adressintervallet för det virtuella nätverket för att undvika intervallkonflikter.
Rensa resurser
Om du inte kommer att fortsätta att använda det här programmet kan du ta bort resursgruppen my-container-apps . Detta tar bort Azure Container Apps-instansen och alla associerade tjänster. Den tar också bort den resursgrupp som Container Apps-tjänsten skapade automatiskt och som innehåller de anpassade nätverkskomponenterna.
Varning
Följande kommando tar bort den angivna resursgruppen och alla resurser som ingår i den. Om det finns resurser utanför omfånget för den här guiden i den angivna resursgruppen tas de också bort.
az group delete --name $RESOURCE_GROUP
Ytterligare resurser
- Om du vill använda inkommande VNet-omfång måste du konfigurera DNS.