Verwalten von Workload-Profilen mit der Azure CLI

Erfahren Sie, wie Sie Arbeitsauslastungsprofile in Ihrer Container-Apps-Umgebung mithilfe der Azure CLI verwalten.

Erstellen einer Container-App in einem Profil

Standardmäßig wird Ihre Container-Apps-Umgebung mit einem verwalteten virtuellen Netzwerk erstellt, das automatisch für Sie generiert wird. Auf generierte virtuelle Netzwerke kann nicht zugegriffen werden, da sie im Mandanten Microsoft erstellt werden.

Alternativ können Sie eine Umgebung mit einem benutzerdefinierten virtuellen Netzwerk erstellen. Verwenden Sie diese Option, wenn Sie eines der folgenden Features benötigen:

  • Benutzerdefinierte Routen
  • Integration in Application Gateway
  • Netzwerksicherheitsgruppen
  • Kommunikation mit Ressourcen hinter privaten Endpunkten in Ihrem virtuellen Netzwerk
  1. Erstellen Sie eine Container Apps-Umgebung.

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

    Die Ausführung dieses Befehls kann bis zu zehn Minuten dauern.

  2. Überprüfen des Umgebungsstatus Der folgende Befehl meldet, ob die Umgebung erfolgreich erstellt wurde.

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

    Das provisioningState muss Succeeded melden, bevor Sie mit dem nächsten Befehl fortfahren.

  3. Erstellen Sie eine neue Container-App.

    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"
    

Mit diesem Befehl wird die Anwendung im integrierten Workload-Profil „Verbrauch“ bereitgestellt. Wenn Sie eine App in einem dedizierten Profil erstellen möchten, müssen Sie das Profil zuerst der Umgebung hinzufügen.

Mit diesem Befehl wird die neue Anwendung in der Umgebung mithilfe eines bestimmten Workload-Profils erstellt.

Wenn Sie eine Umgebung mit einem benutzerdefinierten virtuellen Netzwerk erstellen, haben Sie die vollständige Kontrolle über die Konfiguration des virtuellen Netzwerks. Mit diesem Steuerelement haben Sie die Möglichkeit, die folgenden Features zu implementieren:

  • Benutzerdefinierte Routen
  • Integration in Application Gateway
  • Netzwerksicherheitsgruppen
  • Kommunikation mit Ressourcen hinter privaten Endpunkten in Ihrem virtuellen Netzwerk

Verwenden Sie die folgenden Befehle, um eine Container-Apps-Umgebung zu erstellen.

  1. Erstellen Sie ein virtuelles Netzwerk.

    az network vnet create \
      --address-prefixes 13.0.0.0/23 \
      --resource-group "<RESOURCE_GROUP>" \
      --location "<LOCATION>" \
      --name "<VNET_NAME>"
    
  2. Erstellen Sie ein Subnetz, das an Microsoft.App/environments delegiert wird.

    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"
    

    Kopieren Sie den ID-Wert und fügen Sie ihn in den nächsten Befehl ein.

    Die Microsoft.App/environments Delegierung ist erforderlich, um der Container-Apps-Laufzeit die erforderliche Kontrolle über Ihr virtuelles Netzwerk zu geben, um Workloadprofile in der Container-Apps-Umgebung auszuführen.

    Sie können bis zu minimal /27-CIDR (32 IPs-8 reserviert) für das Subnetz angeben. Wenn Sie einen /27-CIDR angeben möchten, sollten Sie die folgenden Elemente berücksichtigen:

    • Für die Container-Apps-Infrastruktur sind 11 IP-Adressen reserviert. Daher verfügt ein /27-CIDR über maximal 21 verfügbare IP-Adressen.

    • IP-Adressen werden nur zwischen Verbrauchs- und dedizierten Plänen unterschiedlich zugeordnet:

      Nur Verbrauch Dediziert
      Für jedes Replikat ist eine IP erforderlich. Benutzer können nicht über Apps mit mehr als 21 Replikaten in allen Apps verfügen. Die Bereitstellung ohne Ausfallzeiten erfordert doppelte IPs, da die alte Revision ausgeführt wird, bis die neue Revision erfolgreich bereitgestellt wurde. Jede Instanz (VM-Knoten) erfordert eine einzelne IP. Sie können über bis zu 21 Instanzen in allen Workload-Profilen verfügen, und über hunderte oder mehr Replikate, die auf diesen Workload-Profilen ausgeführt werden.
  3. Erstellen Sie eine Container Apps-Umgebung.

    Hinweis

    Sie können auf Umgebungsebene konfigurieren, ob Ihre Container-App öffentlichen eingehenden Datenverkehr oder nur eingehenden Datenverkehr aus Ihrem virtuellen Netzwerk zulässt. Um den Einstieg auf Ihr virtuelles Netzwerk einzuschränken, legen Sie das --internal-only Kennzeichen fest.

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

    Die Ausführung dieses Befehls kann bis zu zehn Minuten dauern.

  4. Überprüfen des Umgebungsstatus Der folgende Befehl meldet, ob die Umgebung erfolgreich erstellt wird.

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

    Das provisioningState muss Succeeded melden, bevor Sie mit dem nächsten Befehl fortfahren.

  5. Erstellen Sie eine neue Container-App.

    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"
    

Mit diesem Befehl wird die Anwendung im integrierten Workload-Profil „Verbrauch“ bereitgestellt. Wenn Sie eine App in einem dedizierten Profil erstellen möchten, müssen Sie das Profil zuerst der Umgebung hinzufügen.

Mit diesem Befehl wird die neue Anwendung in der Umgebung mithilfe eines bestimmten Workload-Profils erstellt.

Profile hinzufügen

Fügen Sie einer vorhandenen Umgebung ein neues Workload-Profil hinzu. Sie müssen einen Arbeitsprofiltyp angeben, wie in diesem Abschnitt beschrieben.

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>

Wenn Sie ein Workloadprofil auswählen, das Hinzugefügt werden soll, stellen Sie die regionale Verfügbarkeit sicher. Der Wert, den Sie für den <WORKLOAD_PROFILE_NAME>-Platzhalter auswählen, ist der Anzeigename des Workload-Profils.

Mithilfe von Anzeigenamen können Sie einer Umgebung mehrere Profile desselben Typs hinzufügen. Der Anzeigename ist das, was Sie beim Bereitstellen und Verwalten einer Container-App in einem Workload-Profil verwenden.

Der Arbeitsprofiltyp ist regionsspezifisch, keine einzige globale hartcodierte Liste. Der beabsichtigte Ermittlungspfad lautet: az containerapp env workload-profile list-supported -l <REGION>. Die Implementierung ermittelt die unterstützten Werte für die verfügbaren Workloadprofiltypen in dieser Region aus dem Endpunkt für ARM-Vorlagen.

Verwenden Sie diesen Befehl, um die gültigen Workloadprofiltypen für Ihre Region anzuzeigen:

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

Verwenden Sie einen der zurückgegebenen Werte für --workload-profile-type. Sie können beispielsweise in Regionen verwenden D4 , in denen dieser Typ verfügbar ist.

Beachten Sie folgendes Verhalten:

  • Der Befehl ändert den Typwert vor dem Senden in Großbuchstaben.
  • Wenn Sie --workload-profile-name weglassen, setzt der Befehl den Profilnamen standardmäßig auf den Typwert.
  • Das Hinzufügen oder Aktualisieren von Workloadprofilen funktioniert nur für Umgebungen, die Workloadprofile unterstützen.

Profile bearbeiten

Sie können die minimale und maximale Anzahl von Knoten ändern, die von einem Workloadprofil mithilfe des update Befehls verwendet werden.

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>

Ein Profil löschen

Verwenden Sie den folgenden Befehl, um ein Workload-Profil zu löschen.

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

Hinweis

Das Workload-Profil Verbrauch kann nicht gelöscht werden.

Prüfen von Profilen

Mit den folgenden Befehlen können Sie verfügbare Profile in Ihrer Region und in einer bestimmten Umgebung auflisten.

Auflisten der verfügbaren Workload-Profile

Verwenden Sie den list-supported-Befehl, um die unterstützten Workload-Profile für Ihre Region auflisten.

Der folgende Azure CLI-Befehl zeigt die Ergebnisse in einer Tabelle an.

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

Die Antwort ähnelt einer Tabelle, die diesem Beispiel ähnelt:

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

Wählen Sie ein Workloadprofil aus, und verwenden Sie das Feld Name, wenn Sie mit den Befehlen az containerapp env workload-profile add oder az containerapp env workload-profile update Workloadprofile für die Option --workload-profile-type hinzufügen oder aktualisieren.

Anzeigen eines Workload-Profils

Zeigen Sie Details zu einem Workload-Profil an.

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

Nächster Schritt