Gestire i profili di carico di lavoro con l'interfaccia della riga di comando di Azure

Informazioni su come gestire un ambiente dei profili di carico di lavoro usando l'interfaccia della riga di comando di Azure.

Creare un'app contenitore in un profilo

Per impostazione predefinita, l'ambiente app contenitore viene creato con una rete virtuale gestita generata automaticamente. Le reti virtuali generate non sono accessibili quando vengono create nel tenant di Microsoft.

In alternativa, è possibile creare un ambiente con una rete virtuale personalizzata se sono necessarie una delle funzionalità seguenti:

  • Route definite dall'utente
  • Integrazione con gateway applicazione
  • Gruppi di sicurezza di rete
  • Comunicazione con le risorse dietro endpoint privati nella rete virtuale

Quando si crea un ambiente con una rete virtuale personalizzata, si ha il controllo completo sulla configurazione della rete virtuale. Questa quantità di controllo offre la possibilità di implementare le funzionalità seguenti:

  • Route definite dall'utente
  • Integrazione con gateway applicazione
  • Gruppi di sicurezza di rete
  • Comunicazione con le risorse dietro endpoint privati nella rete virtuale

Usare i comandi seguenti per creare un ambiente dei profili di carico di lavoro.

  1. Creare una rete virtuale.

    az network vnet create \
      --address-prefixes 13.0.0.0/23 \
      --resource-group "<RESOURCE_GROUP>" \
      --location "<LOCATION>" \
      --name "<VNET_NAME>"
    
  2. Creare una subnet delegata a Microsoft.App/environments.

    az network vnet subnet create \
      --address-prefixes 13.0.0.0/23 \
      --delegations Microsoft.App/environments \
      --name "<SUBNET_NAME>" \
      --resource-group "<RESOURCE_GROUP>" \
      --vnet-name "<VNET_NAME>" \
      --query "id"
    

    Copiare il valore ID e incollarlo nel comando successivo.

    La Microsoft.App/environments delega è necessaria per concedere al runtime di App contenitore il controllo necessario sulla rete virtuale per eseguire i profili di carico di lavoro nell'ambiente App contenitore.

    È possibile specificare come piccolo come CIDR /27 (32 INDIRIZZI IP-8 riservati) per la subnet. Se si intende specificare un /27 CIDR, prendere in considerazione gli elementi seguenti:

    • Esistono 11 indirizzi IP riservati per l'infrastruttura di App contenitore. Pertanto, un /27 CIDR ha un massimo di 21 indirizzi IP disponibili.

    • Gli indirizzi IP vengono allocati in modo diverso tra Solo consumo e Piani dedicati:

      Solo Consumo Dedicato
      Ogni replica richiede un indirizzo IP. Gli utenti non possono avere app con più di 21 repliche in tutte le app. La distribuzione senza tempi di inattività richiede il doppio degli indirizzi IP perché la revisione precedente è in esecuzione fino a quando la nuova revisione non viene distribuita correttamente. Ogni istanza (nodo vm) richiede un singolo INDIRIZZO IP. È possibile avere fino a 21 istanze in tutti i profili di carico di lavoro e centinaia o più repliche in esecuzione in questi profili di carico di lavoro.
  1. Creare l'ambiente dei profili di carico di lavoro

    Nota

    È possibile configurare se l'app contenitore consente l'ingresso pubblico o solo l'ingresso dall'interno della rete virtuale a livello di ambiente. Per limitare l'ingresso solo alla rete virtuale, impostare il --internal-only flag .

    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    
    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    

    Il completamento di questo comando può richiedere fino a 10 minuti.

  2. Controllare lo stato dell'ambiente. Il comando seguente segnala se l'ambiente viene creato correttamente.

    az containerapp env show \
      --name "<ENVIRONMENT_NAME>" \
      --resource-group "<RESOURCE_GROUP>"
    

    È provisioningState necessario segnalare Succeeded prima di passare al comando successivo.

  3. Creare una nuova app contenitore.

    az containerapp create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<CONTAINER_APP_NAME>" \
      --target-port 80 \
      --ingress external \
      --image mcr.microsoft.com/k8se/quickstart:latest \
      --environment "<ENVIRONMENT_NAME>" \
      --workload-profile-name "Consumption"
    

    Questo comando distribuisce l'applicazione nel profilo del carico di lavoro a consumo predefinito. Se si vuole creare un'app in un profilo dedicato, è prima necessario aggiungere il profilo all'ambiente.

    Questo comando crea la nuova applicazione nell'ambiente usando un profilo di carico di lavoro specifico.

Aggiungere profili

Aggiungere un nuovo profilo di carico di lavoro a un ambiente esistente.

az containerapp env workload-profile add \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> \
  --min-nodes <MIN_NODES> \
  --max-nodes <MAX_NODES>

Il valore selezionato per il <WORKLOAD_PROFILE_NAME> segnaposto è il nome descrittivo del profilo del carico di lavoro.

L'uso di nomi descrittivi consente di aggiungere più profili dello stesso tipo a un ambiente. Il nome descrittivo è quello usato durante la distribuzione e la gestione di un'app contenitore in un profilo del carico di lavoro.

Modifica profili

È possibile modificare il numero minimo e massimo di nodi usati da un profilo del carico di lavoro tramite il update comando .

az containerapp env workload-profile update \
  --resource-group <RESOURCE_GROUP> \
  --name <ENV_NAME> \
  --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> \
  --min-nodes <MIN_NODES> \
  --max-nodes <MAX_NODES>

Eliminare un profilo

Usare il comando seguente per eliminare un profilo del carico di lavoro.

az containerapp env workload-profile delete \
  --resource-group "<RESOURCE_GROUP>" \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

Nota

Non è possibile eliminare il profilo del carico di lavoro Consumo .

Esaminare i profili

I comandi seguenti consentono di elencare i profili disponibili nell'area e quelli usati in un ambiente specifico.

Elencare i profili di carico di lavoro disponibili

Usare il list-supported comando per elencare i profili di carico di lavoro supportati per l'area.

Il comando seguente dell'interfaccia della riga di comando di Azure visualizza i risultati in una tabella.

az containerapp env workload-profile list-supported \
  --location <LOCATION>  \
  --query "[].{Name: name, Cores: properties.cores, MemoryGiB: properties.memoryGiB, Category: properties.category}" \
  -o table

La risposta è simile a una tabella simile all'esempio seguente:

Name         Cores    MemoryGiB    Category
-----------  -------  -----------  ---------------
D4           4        16           GeneralPurpose
D8           8        32           GeneralPurpose
D16          16       64           GeneralPurpose
E4           4        32           MemoryOptimized
E8           8        64           MemoryOptimized
E16          16       128          MemoryOptimized
E32          32       256          MemoryOptimized
Consumption  4        8            Consumption

Selezionare un profilo del carico di lavoro e usare il campo Nome quando si esegue az containerapp env workload-profile set per l'opzione --workload-profile-type .

Visualizzare un profilo del carico di lavoro

Visualizzare i dettagli relativi a un profilo del carico di lavoro.

az containerapp env workload-profile show \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

Passaggi successivi