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

Informazioni su come gestire i profili di carico di lavoro nell'ambiente App contenitore usando l'interfaccia della riga di comando di Azure.

Creare un'app contenitore in un profilo

Per impostazione predefinita, l'ambiente di Container Apps viene creato con una rete virtuale gestita che viene generata automaticamente per l'utente. Le reti virtuali generate non sono accessibili perché vengono create nel tenant di Microsoft.

In alternativa, è possibile creare un ambiente con una rete virtuale personalizzata. Usare questa opzione se sono necessarie le funzionalità seguenti:

  • Ruoli definiti dall'utente
  • Integrazione con il gateway applicazione
  • Gruppi di sicurezza di rete
  • Comunicazione con le risorse dietro endpoint privati nella rete virtuale
  1. Creare un ambiente App contenitore.

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

    L'esecuzione del comando può richiedere fino a 10 minuti.

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

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

    provisioningState deve riportare 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 del carico di lavoro specifico.

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

  • Ruoli definiti dall'utente
  • Integrazione con il 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 per Container Apps.

  1. Crea 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 garantire al runtime di Container Apps il controllo necessario sulla rete virtuale per eseguire i profili di carico di lavoro nell'ambiente Container Apps.

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

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

    • Gli indirizzi IP vengono allocati in modo diverso tra i piani solo a consumo e 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. Ogni istanza (nodo della macchina virtuale) richiede un singolo indirizzo IP. È possibile avere fino a 21 istanze in tutti i profili del carico di lavoro e centinaia o più repliche in esecuzione in tali profili.
  3. Creare un ambiente App contenitore.

    Note

    È 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 \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    

    L'esecuzione del comando può richiedere fino a 10 minuti.

  4. Controllare lo stato dell'ambiente. Il comando seguente indica se l'ambiente viene creato correttamente.

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

    provisioningState deve segnalare Succeeded prima di passare al comando successivo.

  5. 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 del carico di lavoro specifico.

Aggiungere profili

Aggiungere un nuovo profilo del carico di lavoro a un ambiente esistente. È necessario specificare un tipo di profilo di lavoro, come descritto in questa sezione.

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>

Quando si seleziona un profilo di carico di lavoro da aggiungere, assicurarsi la disponibilità a livello di area. Il valore selezionato per il segnaposto <WORKLOAD_PROFILE_NAME> è 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.

Il tipo di profilo di lavoro è specifico della regione, non un unico elenco globale codificato in modo statico. Il percorso di individuazione previsto è: az containerapp env workload-profile list-supported -l <REGION>. L'implementazione recupera i valori supportati dall'endpoint del modello ARM per i tipi di profilo di carico di lavoro disponibili in quell'area.

Usare questo comando per visualizzare i tipi di profilo del carico di lavoro validi per l'area:

az containerapp env workload-profile list-supported -l <REGION>

Usare uno dei valori restituiti per --workload-profile-type. Ad esempio, è possibile usare D4 nelle aree in cui tale tipo è disponibile.

Tenere presente il comportamento seguente:

  • Il comando modifica il valore del tipo in lettere maiuscole prima di inviarlo.
  • Se si omette --workload-profile-name, il comando usa per impostazione predefinita il valore del tipo come nome del profilo.
  • L'aggiunta o l'aggiornamento dei profili di carico di lavoro funziona solo per gli ambienti che supportano i profili di carico di lavoro.

Modifica profili

È possibile modificare il numero minimo e massimo di nodi usati da un profilo del carico di lavoro usando 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> 

Note

Non è possibile eliminare il profilo del carico di lavoro A 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 del carico di lavoro disponibili

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

Il comando dell'interfaccia della riga di comando di Azure seguente 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
D32                        32       128          GeneralPurpose
E4                         4        32           MemoryOptimized
E8                         8        64           MemoryOptimized
E16                        16       128          MemoryOptimized
E32                        32       256          MemoryOptimized
Consumption                4        8            Consumption
Consumption-GPU-NC24-A100  24       220          Consumption-GPU-A100
Consumption-GPU-NC8as-T4   8        56           Consumption-GPU-T4
Flex                       4        16           Consumption
NC24-A100                  24       220          GPU-NC-A100
NC48-A100                  48       440          GPU-NC-A100
NC96-A100                  96       880          GPU-NC-A100

Selezionare un profilo del carico di lavoro e usare il campo Nome quando si aggiungono o si aggiornano i profili del carico di lavoro con i az containerapp env workload-profile add comandi o az containerapp env workload-profile update 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> 

Passo successivo