Fornire una rete virtuale a un ambiente esterno App contenitore di Azure.
L'esempio seguente illustra come creare un ambiente app contenitore in una rete virtuale esistente.
Per iniziare, accedere al portale di Azure.
Creare un'app contenitore
Per creare l'app contenitore, iniziare dalla home page portale di Azure.
- Cercare App contenitore nella barra di ricerca superiore.
- Selezionare App contenitore nei risultati della ricerca.
- Selezionare il pulsante Crea.
Scheda Informazioni di base
Nella scheda Informazioni di base eseguire le azioni seguenti.
Immettere i valori seguenti nella sezione Dettagli progetto.
Impostazione Azione Abbonamento Seleziona la tua sottoscrizione di Azure. Gruppo di risorse Selezionare Crea nuovo e immettere my-container-apps. Nome dell'app contenitore Immettere my-container-app.
Crea un ambiente
Creare quindi un ambiente per l'app contenitore.
Selezionare l'area appropriata.
Impostazione Valore Paese Selezionare Stati Uniti centrali. Nel campo Crea ambiente app contenitore selezionare il collegamento Crea nuovo.
Nella pagina Crea ambiente app contenitore nella scheda Informazioni di base immettere i valori seguenti:
Impostazione Valore Nome ambiente Immettere my-environment. Tipo di ambiente Selezionare Solo consumo. Ridondanza della zona selezionare Disabilitato Selezionare la scheda Monitoraggio per creare un'area di lavoro Log Analytics.
Selezionare Azure Log Analytics come destinazione log.
Selezionare il collegamento Crea nuovo nel campo Area di lavoro Log Analytics e immettere i valori seguenti.
Impostazione valore Nome Immettere my-container-apps-logs. Il campo Località viene precompilato con Stati Uniti centrali.
Seleziona OK.
Nota
È possibile usare una rete virtuale esistente, ma è necessaria una subnet dedicata con un intervallo CIDR superiore /23
o superiore per l'uso con le app contenitore quando si usa l'architettura solo a consumo. Quando si usa un ambiente dei profili di carico di lavoro, è necessario un /27
o più grandi. Per altre informazioni sul dimensionamento delle subnet, vedere panoramica dell'architettura di rete.
Selezionare la scheda Rete per creare una rete virtuale.
Selezionare Sì accanto a Usa la propria rete virtuale.
Accanto alla casella Rete virtuale selezionare il collegamento Crea nuovo e immettere il valore seguente.
Impostazione valore Nome Immettere my-custom-vnet. Selezionare il pulsante OK.
Accanto alla casella Subnet infrastruttura selezionare il collegamento Crea nuovo e immettere i valori seguenti:
Impostazione Valore Nome della subnet Immettere infrastructure-subnet. Blocco di indirizzi della rete virtuale Mantenere i valori predefiniti. Blocco di indirizzi della subnet Mantenere i valori predefiniti. Selezionare il pulsante OK.
In IP virtuale selezionare Esterno.
Seleziona Crea.
Distribuire l'app contenitore
Selezionare Rivedi e crea nella parte inferiore della pagina.
Se non vengono rilevati errori, il pulsante Crea è abilitato.
In caso di errori, qualsiasi scheda contenente errori viene contrassegnata con un punto rosso. Passare alla scheda appropriata. I campi contenenti un errore vengono evidenziati in rosso. Dopo aver corretto tutti gli errori, selezionare Rivedi e crea di nuovo.
Seleziona Crea.
Viene visualizzata una pagina con il messaggio Distribuzione in corso . Al termine della distribuzione, viene visualizzato il messaggio: La distribuzione è stata completata.
Prerequisiti
- Account Azure con una sottoscrizione attiva.
- Se non hai un account, puoi crearlo gratuitamente.
- Installare l'interfaccia della riga di comando di Azure versione 2.28.0 o successiva.
Attrezzaggio
Per iniziare, accedere ad Azure. Eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.
az login
Installare quindi l'estensione App Azure Container per l'interfaccia della riga di comando.
az extension add --name containerapp --upgrade
Ora che l'estensione o il modulo corrente è installato, registrare lo Microsoft.App
spazio dei nomi.
Nota
Le risorse di App Azure Container sono state migrate dallo Microsoft.Web
spazio dei nomi allo Microsoft.App
spazio dei nomi . Per altri dettagli, vedere Migrazione dello spazio dei nomi da Microsoft.Web a Microsoft.App nel mese di marzo 2022.
az provider register --namespace Microsoft.App
Registrare il Microsoft.OperationalInsights
provider per l'area di lavoro Log Analytics di Monitoraggio di Azure, se non è stato usato in precedenza.
az provider register --namespace Microsoft.OperationalInsights
Impostare quindi le variabili di ambiente seguenti:
RESOURCE_GROUP="my-container-apps"
LOCATION="canadacentral"
CONTAINERAPPS_ENVIRONMENT="my-environment"
Con queste variabili definite, è possibile creare un gruppo di risorse per organizzare i servizi correlati alla nuova app contenitore.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Con l'interfaccia della riga di comando aggiornata e un nuovo gruppo di risorse disponibile, è possibile creare e distribuire un ambiente di App contenitore.
Crea un ambiente
Un ambiente di App contenitore di Azure crea un limite sicuro intorno a un gruppo di app contenitore. Le app contenitore nello stesso ambiente vengono distribuite nella stessa rete virtuale e scrivono log nella stessa area di lavoro Log Analytics.
Registrare il Microsoft.ContainerService
provider.
az provider register --namespace Microsoft.ContainerService
Dichiarare una variabile per contenere il nome della rete virtuale.
VNET_NAME="my-custom-vnet"
Creare ora una rete virtuale di Azure da associare all'ambiente App contenitore. La rete virtuale deve avere una subnet disponibile per la distribuzione dell'ambiente.
Nota
Il prefisso dell'indirizzo della subnet di rete richiede un intervallo CIDR minimo per /23
l'uso con app contenitore quando si usa l'architettura solo a consumo. Quando si usa l'architettura dei profili di carico di lavoro, è necessario un /27
valore o superiore. Per altre informazioni sul dimensionamento delle subnet, vedere panoramica dell'architettura di rete.
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/21
Dopo aver creato la rete virtuale, è possibile recuperare l'ID per la subnet dell'infrastruttura.
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:]'`
Creare infine l'ambiente app contenitore usando la rete virtuale personalizzata distribuita nei passaggi precedenti.
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION" \
--infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET
Nella tabella seguente vengono descritti i parametri usati in containerapp env create
.
Parametro | Descrizione |
---|---|
name |
Nome dell'ambiente App contenitore. |
resource-group |
Nome del gruppo di risorse. |
location |
Posizione di Azure in cui deve essere distribuito l'ambiente. |
infrastructure-subnet-resource-id |
ID risorsa di una subnet per i componenti dell'infrastruttura e i contenitori di applicazioni utente. |
Dopo aver creato l'ambiente usando una rete virtuale personalizzata, è ora possibile distribuire le app contenitore nell'ambiente.
Configurazione facoltativa
È possibile distribuire un DNS privato e definire intervalli IP di rete personalizzati per l'ambiente app contenitore.
Eseguire la distribuzione con un DNS privato
Se si vuole distribuire l'app contenitore con un DNS privato, eseguire i comandi seguenti.
Prima di tutto, estrarre informazioni identificabili dall'ambiente.
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 '"'`
Configurare quindi il DNS privato.
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
Parametri di rete
Esistono tre parametri di rete facoltativi che è possibile scegliere di definire quando si chiama containerapp env create
. Usare queste opzioni quando si dispone di una rete virtuale con peering con intervalli di indirizzi separati. La configurazione esplicita di questi intervalli garantisce che gli indirizzi usati dall'ambiente App contenitore non siano in conflitto con altri intervalli nell'infrastruttura di rete.
È necessario specificare i valori per tutte e tre queste proprietà o nessuna di esse. Se non vengono forniti, i valori vengono generati automaticamente.
Parametro | Descrizione |
---|---|
platform-reserved-cidr |
Intervallo di indirizzi usato internamente per i servizi dell'infrastruttura dell'ambiente. Deve avere una dimensione compresa tra /23 e /12 quando si usa l'architettura Solo consumo |
platform-reserved-dns-ip |
Indirizzo IP dall'intervallo platform-reserved-cidr usato per il server DNS interno. L'indirizzo non può essere il primo indirizzo nell'intervallo o l'indirizzo di rete. Ad esempio, se platform-reserved-cidr è impostato su 10.2.0.0/16 , platform-reserved-dns-ip non può essere 10.2.0.0 (l'indirizzo di rete) o 10.2.0.1 (l'infrastruttura riserva l'uso di questo IP). In questo caso, il primo indirizzo IP utilizzabile per il DNS sarebbe 10.2.0.2 . |
docker-bridge-cidr |
Intervallo di indirizzi assegnato alla rete bridge Docker. Questo intervallo deve avere una dimensione compresa tra /28 e /12 . |
Gli
platform-reserved-cidr
intervalli di indirizzi edocker-bridge-cidr
non possono entrare in conflitto tra loro o con gli intervalli di una subnet specificata. Assicurarsi inoltre che questi intervalli non siano in conflitto con altri intervalli di indirizzi nella rete virtuale.Se queste proprietà non vengono specificate, l'interfaccia della riga di comando genera automaticamente i valori di intervallo in base all'intervallo di indirizzi della rete virtuale per evitare conflitti di intervallo.
Pulire le risorse
Se non si intende continuare a usare questa applicazione, è possibile rimuovere il gruppo di risorse my-container-apps . In questo modo viene eliminata l'istanza di App Azure Container e tutti i servizi associati. Elimina anche il gruppo di risorse creato automaticamente dal servizio App contenitore che contiene i componenti di rete personalizzati.
Attenzione
Il comando seguente elimina il gruppo di risorse specificato e tutte le risorse contenute al suo interno. Se le risorse esterne all'ambito di questa guida esistono nel gruppo di risorse specificato, verranno eliminate anche.
az group delete --name $RESOURCE_GROUP